0

我正在使用 LIKE 子句来获取自动完成列表。当我使用

name LIKE '%value%'

它给了我包含“值”的名称列表,但它没有正确显示这个列表,例如。当给出值“san”并且我在表中有“sanclose”但它没有在结果中显示这个值。所以我想可能我应该从前面删除 % 通配符。所以在删除前面的 % 通配符之后

name LIKE 'value%'

现在它没有给我任何结果。我的专栏也有全文搜索索引。

请建议我是否遗漏了什么或有其他更好的方法来获得更好的结果?

提前致谢。

这是我正在尝试的完整 sql

SELECT z.zone_id, CONCAT(z.name,',',c.name) as zone FROM zone z LEFT JOIN country c ON z.country_id = c.country_id WHERE z.name LIKE 'span%' 
4

2 回答 2

0

也许你应该试试name LIKE '%value'

于 2012-11-29T09:34:16.530 回答
0

我不明白为什么 LIKE 表现得区分大小写,但下面的修改对我有用。

SELECT z.zone_id, CONCAT( z.name,  ',', c.name ) AS zone FROM zone z
LEFT JOIN country c ON z.country_id = c.country_id
WHERE LOWER( z.name ) LIKE  'san%'

上面的查询给了我完美的结果。谢谢大家的帮助。

于 2012-11-29T10:40:00.503 回答