您好我正在尝试在SQL中运行此查询,但它没有给我结果:
SELECT COUNT(*) AS Expr1
FROM restaurantData
WHERE (restaurantInfo LIKE '''%' + 'xyz' + '%''') OR
(restaurantName LIKE '''%' + 'xyz' + '%''') OR
(restaurantDescription LIKE '''%' + 'xyz' + '%''')
我有restaurantName列,价值为xyz Restaurant
以下是一些示例数据
答案 0 :(得分:4)
为什么要使用额外的单引号?
SELECT
COUNT(*) AS Expr1
FROM restaurantData
WHERE (restaurantInfo LIKE '%Guu%')
OR (restaurantName LIKE '%Guu%')
OR (restaurantDescription LIKE '%Guu%')
您似乎正在尝试动态构建它;如果是这样,那么我建议您发布如何构建它。
答案 1 :(得分:2)
当执行字符串连接时,您使用的是将结果与以下内容进行比较:
'%Guu%'
当您在SQL字符串中依次放置两个单引号字符时,它会被“转义”,因此''
将用作'
。如果您的数据集包含引号字符,您将匹配以下内容:
restaurantInfo
--------------
'ABCGuuDEF'
'xyzGuuamn'
我相信你想要这样做:
'%''' + 'Guu' + '''%'
哪匹配
restaurantInfo
--------------
Asdf'Guu'
'Guu'Asdf
或者,如果你只是在没有任何引号的情况下寻找Guu,那就去做吧
'%' + 'Guu' + '%'
哪匹配
restaurantInfo
--------------
Guu
GuuAbcd
AbcdGuu
Asdf'Guu'
'Guu'Asdf