在我的表格中,我有一个nVarchar
或nText
假设此col的值与此'... xxx yyy zzz ...'
我使用SELECT
来搜索此列的表
SELECT * FROM tbl_name WHERE col_name like '%xxx yyy%'
由于我不能强迫用户输入带有我的序列的单词,我也想用这个查询给出相同的结果:
SELECT * FROM tbl_name WHERE col_name like '%yyy xxx%'
答案 0 :(得分:3)
在我看来,您可能想要考虑规范化您的表格。具体来说,如果“yyy xxx”与“xxx yyy”相同,那么您将在一列中存储一个数组(或列表或任何您想要调用的数组),这会破坏第一个正常形式。将其标准化,使每个原子(即“xxx”,“yyy”)分开存储并与原始记录相关联。那么做你想做的事情几乎是微不足道的。
答案 1 :(得分:2)
您必须将用户输入标记为应用程序代码(而不是sql)中的单独单词,然后构建像
这样的查询SELECT * FROM tbl_name WHERE
(col_name like '%yyy%') AND (col_name like '%xxx%') AND ...
答案 2 :(得分:0)
您最好的选择是同时使用这两个标准和“或”。
SELECT *
FROM tbl_name
WHERE (col_name like '%xxx yyy%')
OR (col_name like '%yyy xxx%');