Sql SELECT语句的顺序限制
在我的表中,有一列类型为Sql SELECT语句的顺序限制,sql,sql-server,Sql,Sql Server,在我的表中,有一列类型为nVarchar或nText 假设此列的值如下所示。。。xxx yyy zzz…“ 我使用SELECT搜索包含此列的表 SELECT * FROM tbl_name WHERE col_name like '%xxx yyy%' 由于“我无法强制用户按我的顺序输入单词”,因此我也想在此查询中给出相同的结果: SELECT * FROM tbl_name WHERE col_name like '%yyy xxx%' 您必须在应用程序代码(而不是sql)中将用户输入标记
nVarchar
或nText
假设此列的值如下所示。。。xxx yyy zzz…“
我使用SELECT
搜索包含此列的表
SELECT * FROM tbl_name WHERE col_name like '%xxx yyy%'
由于“我无法强制用户按我的顺序输入单词”,因此我也想在此查询中给出相同的结果:
SELECT * FROM tbl_name WHERE col_name like '%yyy xxx%'
您必须在应用程序代码(而不是sql)中将用户输入标记为单独的单词,然后构造如下查询
SELECT * FROM tbl_name WHERE
(col_name like '%yyy%') AND (col_name like '%xxx%') AND ...
您必须在应用程序代码(而不是sql)中将用户输入标记为单独的单词,然后构造如下查询
SELECT * FROM tbl_name WHERE
(col_name like '%yyy%') AND (col_name like '%xxx%') AND ...
您最好同时使用标准和“或”
您最好同时使用标准和“或”
在我看来,你可能想考虑规范化你的表。具体来说,如果“yyy-xxx”与“xxx-yyy”相同,那么您将在一列中存储一个数组(或列表或任何您想要调用它的内容),这打破了第一个正常形式。对其进行规范化,使每个原子(即“xxx”、“yyy”)分别存储,并与原始记录相关。那么,做你想做的事情几乎是微不足道的。 < P>我想你可能想考虑规范化你的表。具体来说,如果“yyy-xxx”与“xxx-yyy”相同,那么您将在一列中存储一个数组(或列表或任何您想要调用它的内容),这打破了第一个正常形式。对其进行规范化,使每个原子(即“xxx”、“yyy”)分别存储,并与原始记录相关。那么,做你想做的事情几乎是微不足道的