我正在尝试在存储过程中创建单个搜索多个文本字符串。以下代码适用于test1,但是当我尝试test1和amp; test2我没有结果;也没有错误。
现在已经注明了test2的行。
SELECT name, line, text
FROM user_source
WHERE type = 'PROCEDURE'
AND UPPER(text) LIKE UPPER('%test1%')
-- AND TEXT LIKE UPPER('%test2%')
ORDER BY NAME;
我做错了什么?
答案 0 :(得分:1)
使用OR
,因为如果您使用AND
,只有找到两个字符串才会出现积极情况。也许你错过了鞋帮(文字)
SELECT name, line, text
FROM user_source
WHERE type = 'PROCEDURE'
AND UPPER(text) LIKE UPPER('%test1%')
OR upper(TEXT) LIKE UPPER('%test2%')
答案 1 :(得分:1)
也许没有“text1”和“text2”字符串的行。在这种情况下你必须使用OR。
SELECT NAME, LINE, TEXT
FROM USER_SOURCE
WHERE TYPE = 'PROCEDURE'
AND (UPPER(TEXT) LIKE UPPER('%TEST1%')
OR UPPER(TEXT) LIKE UPPER('%TEST2%'))
答案 2 :(得分:0)
你在最后一行丢失了UPPER(TEXT)。应该是:
SELECT name, line, text
FROM user_source
WHERE type = 'PROCEDURE'
AND UPPER(text) LIKE UPPER('%test1%')
AND UPPER(TEXT) LIKE UPPER('%test2%')