Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql SELECT语句的顺序限制_Sql_Sql Server - Fatal编程技术网

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”)分别存储,并与原始记录相关。那么,做你想做的事情几乎是微不足道的