我的数据库中有一个名为contact
的表。它包含以下列: name,mobile和twon 。问题是我正在尝试获取所有twon='Dubai'
,但是当我执行查询时,它只检索了81000行,但总数是130000.其余的行没有出现在我的查询中。
我的查询:
SELECT * FROM `contact` WHERE `twon` = 'Dubai'
有人能告诉我出错的地方或帮我从表中获取所有数据吗?
答案 0 :(得分:2)
=
才会获取记录。
尝试使用LIKE
,TRIM
和LOWER
:
SELECT * FROM `contact` WHERE LOWER(TRIM(`twon`)) LIKE '%dubai%'
如果twon
列包含单词'dubai',此查询将获取记录。
答案 1 :(得分:1)
不同的事情可能是错的 如果您发布应该返回的行的示例,它将有助于我们。
如果区分大小写是一个问题(例如,' dubai'或' DUBAI'未退回),您可以使用LOWER功能
SELECT * FROM `contact` WHERE LOWER(`twon`) = 'dubai'
在某些情况下,列内容中的额外空格会失败,例如'迪拜'和'迪拜'。您可以使用TRIM函数来消除尾随和前导空格。
SELECT * FROM `contact` WHERE TRIM(`twon`) = 'Dubai'
将两者结合起来也是有效的。
SELECT * FROM `contact` WHERE LOWER(TRIM(`twon`)) = 'dubai'