我的MySQL数据库中有一个包含项目的表。
我正在尝试查询一个包含"&"的行。该列是一个文本值,包含内容"电视和支架"。
SELECT * FROM `items` WHERE `name` = 'TV & Stands' LIMIT 0 , 30
这将返回0个结果,即使"TV&Stands"明显位于名称列中。如果查询不包含"&"字符的项目名称,它将返回正确的值。
如何正确查询此数据?
如果使用=
运算符,它将匹配值和长度。可能是您的字符串在正常情况下不可见的字符串之前/之后包含一些额外的空间。所以尝试LIKE
运算符instate。
SELECT * FROM `items` WHERE `name` LIKE '%TV & Stands%'
数据库不应该有与号的问题,所以这是应用程序层的问题。你可以使用like
:绕过它
SELECT *
FROM `items`
WHERE `name` LIKE 'TV _ Stands'
LIMIT 0 , 30;