• <bdo id='4dJtU'></bdo><ul id='4dJtU'></ul>

      <legend id='4dJtU'><style id='4dJtU'><dir id='4dJtU'><q id='4dJtU'></q></dir></style></legend>
      <tfoot id='4dJtU'></tfoot>
      <i id='4dJtU'><tr id='4dJtU'><dt id='4dJtU'><q id='4dJtU'><span id='4dJtU'><b id='4dJtU'><form id='4dJtU'><ins id='4dJtU'></ins><ul id='4dJtU'></ul><sub id='4dJtU'></sub></form><legend id='4dJtU'></legend><bdo id='4dJtU'><pre id='4dJtU'><center id='4dJtU'></center></pre></bdo></b><th id='4dJtU'></th></span></q></dt></tr></i><div id='4dJtU'><tfoot id='4dJtU'></tfoot><dl id='4dJtU'><fieldset id='4dJtU'></fieldset></dl></div>

      <small id='4dJtU'></small><noframes id='4dJtU'>

    1. 参数化 SQL IN 子句

      Parameterize an SQL IN clause(参数化 SQL IN 子句)
      <i id='INhSj'><tr id='INhSj'><dt id='INhSj'><q id='INhSj'><span id='INhSj'><b id='INhSj'><form id='INhSj'><ins id='INhSj'></ins><ul id='INhSj'></ul><sub id='INhSj'></sub></form><legend id='INhSj'></legend><bdo id='INhSj'><pre id='INhSj'><center id='INhSj'></center></pre></bdo></b><th id='INhSj'></th></span></q></dt></tr></i><div id='INhSj'><tfoot id='INhSj'></tfoot><dl id='INhSj'><fieldset id='INhSj'></fieldset></dl></div>

        • <bdo id='INhSj'></bdo><ul id='INhSj'></ul>

              1. <legend id='INhSj'><style id='INhSj'><dir id='INhSj'><q id='INhSj'></q></dir></style></legend>
                  <tbody id='INhSj'></tbody>
              2. <small id='INhSj'></small><noframes id='INhSj'>

                <tfoot id='INhSj'></tfoot>

                本文介绍了参数化 SQL IN 子句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                如何参数化包含 IN 子句和可变数量参数的查询,例如这个?

                How do I parameterize a query containing an IN clause with a variable number of arguments, like this one?

                SELECT * FROM Tags 
                WHERE Name IN ('ruby','rails','scruffy','rubyonrails')
                ORDER BY Count DESC
                

                在这个查询中,参数的数量可以是 1 到 5 之间的任何一个.

                In this query, the number of arguments could be anywhere from 1 to 5.

                我不想为此(或 XML)使用专用的存储过程,但如果有一些特定于 SQL Server 2008,我对此持开放态度.

                I would prefer not to use a dedicated stored procedure for this (or XML), but if there is some elegant way specific to SQL Server 2008, I am open to that.

                推荐答案

                这是我使用过的一种快速而肮脏的技术:

                Here's a quick-and-dirty technique I have used:

                SELECT * FROM Tags
                WHERE '|ruby|rails|scruffy|rubyonrails|'
                LIKE '%|' + Name + '|%'
                

                这里是 C# 代码:

                string[] tags = new string[] { "ruby", "rails", "scruffy", "rubyonrails" };
                const string cmdText = "select * from tags where '|' + @tags + '|' like '%|' + Name + '|%'";
                
                using (SqlCommand cmd = new SqlCommand(cmdText)) {
                   cmd.Parameters.AddWithValue("@tags", string.Join("|", tags);
                }
                

                两个警告:

                • 表演很糟糕.LIKE "%...%" 查询未编入索引.
                • 确保您没有任何 |、空白或空标签,否则这将不起作用
                • The performance is terrible. LIKE "%...%" queries are not indexed.
                • Make sure you don't have any |, blank, or null tags or this won't work

                还有其他一些人可能认为更简洁的方法来实现这一点,所以请继续阅读.

                There are other ways to accomplish this that some people may consider cleaner, so please keep reading.

                这篇关于参数化 SQL IN 子句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                相关文档推荐

                Select n random rows from SQL Server table(从 SQL Server 表中随机选择 n 行)
                SQL query to select dates between two dates(用于选择两个日期之间的日期的 SQL 查询)
                How can I delete using INNER JOIN with SQL Server?(如何在 SQL Server 中使用 INNER JOIN 进行删除?)
                Table Naming Dilemma: Singular vs. Plural Names(表命名困境:单数与复数名称)
                INSERT statement conflicted with the FOREIGN KEY constraint - SQL Server(INSERT 语句与 FOREIGN KEY 约束冲突 - SQL Server)
                How ROWNUM works in pagination query?(ROWNUM 如何在分页查询中工作?)
                  <bdo id='xV199'></bdo><ul id='xV199'></ul>

                      <tbody id='xV199'></tbody>
                    <tfoot id='xV199'></tfoot>

                      <small id='xV199'></small><noframes id='xV199'>

                        <i id='xV199'><tr id='xV199'><dt id='xV199'><q id='xV199'><span id='xV199'><b id='xV199'><form id='xV199'><ins id='xV199'></ins><ul id='xV199'></ul><sub id='xV199'></sub></form><legend id='xV199'></legend><bdo id='xV199'><pre id='xV199'><center id='xV199'></center></pre></bdo></b><th id='xV199'></th></span></q></dt></tr></i><div id='xV199'><tfoot id='xV199'></tfoot><dl id='xV199'><fieldset id='xV199'></fieldset></dl></div>
                        <legend id='xV199'><style id='xV199'><dir id='xV199'><q id='xV199'></q></dir></style></legend>