我创建了一个搜索作为Windows操作系统,例如,当您键入单词USA时,查询应该搜索包含单词USA的所有列。如果我使用" OR"在每个条件之后,结果将是条件为真时的所有数据,查询将不会检查所有列。
下面的示例,我想搜索单词USA并应该给我带来第1行和第3行,因为你可以看到我在第一行中有美国,在NAME列和3行中我在列中有美国关键:
ID NAME KEY
1 USA USA13CAN
2 CAN CAN65464MEX
3 MEX MEX4978USA
4 BRA BR66544BRA
5 FRA FR5446CAN
我该怎么办?使用下面的这个脚本,不起作用,因为在第一个条件成立后,验证将停止。
SELECT *
FROM COUNTRY
WHERE NAME LIKE '%USA%'
OR DESCR LIKE '%USA%'
OR KEY LIKE '%USA%'
答案 0 :(得分:1)
我该怎么办?使用下面的这个脚本,不起作用,因为在第一个条件成立后,验证将停止。
我不确定你的意思。如果第一部分(NAME LIKE '%USA%'
)评估为true
,则将返回记录,这正是您想要的。如果该部分评估为false
,则会继续到下一部分(OR
之后)。
如果我想要NAME
或DESCR
包含foo
的所有记录,您的方法似乎没问题,声明
SELECT *
FROM table
WHERE name LIKE '%foo%'
OR descr LIKE '%foo%'
应该完全按照自己的意愿行事。