Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL किसी भी क्रम में कीवर्ड की तरह चुनें

ऐसा लगता है कि आप वास्तव में हैं पूर्ण-पाठ खोज की तलाश में, खासकर जब से आप शब्दों को महत्व देना चाहते हैं।

LIKE . का उपयोग करने के लिए , आपको एकाधिक अभिव्यक्तियों (प्रति शब्द एक, प्रति कॉलम) का उपयोग करना होगा, जिसका अर्थ है गतिशील एसक्यूएल। मुझे नहीं पता कि आप किस भाषा का उपयोग कर रहे हैं, इसलिए मैं एक उदाहरण नहीं दे सकता, लेकिन आपको इस तरह का एक बयान देना होगा:

"हुला हुप्स" के लिए:

where (ProductName like '%hula%' or ProductName like '%hoops%')
  and (Description like '%hula%' or Description like '%hoops%')
  and (ShortName like '%hula%' or ShortName like '%hoops%')

आदि.

दुर्भाग्य से, यह वास्तव में ऐसा करने का एकमात्र तरीका है। पूर्ण पाठ खोज का उपयोग करने से आप अपने मानदंड को प्रति स्तंभ एक तक कम कर सकते हैं, लेकिन आपको अभी भी स्तंभों को स्पष्ट रूप से निर्दिष्ट करना होगा।

चूंकि आप SQL सर्वर का उपयोग कर रहे हैं, इसलिए मैं अनुमान लगाने जा रहा हूं कि यह एक सी # प्रश्न है। आपको कुछ ऐसा करना होगा (मान लीजिए कि आप SqlCommand . बना रहे हैं या DbCommand अपने आप पर आपत्ति करें; यदि आप ओआरएम का उपयोग कर रहे हैं, तो सभी दांव बंद हैं और आप शायद वैसे भी यह नहीं पूछ रहे होंगे):

SqlCommand command = new SqlCommand();
int paramCount = 0;

string searchTerms = "Hula Hoops";

string commandPrefix = @"select *

from Products";

StringBuilder whereBuilder = new StringBuilder();

foreach(string term in searchTerms.Split(' '))
{
    if(whereBuilder.Length == 0)
    {
        whereBuilder.Append(" where ");
    }
    else
    {
        whereBuilder.Append(" and ");
    }

    paramCount++;

    SqlParameter param = new SqlParameter(string.Format("param{0}",paramCount), "%" + term + "%");

    command.Parameters.Add(param);

    whereBuilder.AppendFormat("(ProductName like @param{0} or Description like @param{0} or ShortName like @param{0})",paramCount);
}

command.CommandText = commandPrefix + whereBuilder.ToString();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. विशेष वर्णों की अनुमति दें SQL Server 2008

  2. SQL सर्वर डेटाबेस में टेबल छुपा रहा है?

  3. SQL IN क्वेरी अजीब परिणाम उत्पन्न करती है

  4. SQL सर्वर में COALESCE फ़ंक्शन पर 5 ज्वलंत प्रश्नों के शीर्ष उत्तर

  5. एक अस्थायी तालिका घोषित बनाम बनाम का उपयोग करना:प्रदर्शन/अंतर?