在mysql中使用LIKE获取自动完成列表

时间:2012-11-29 09:27:55

标签: php mysql

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

name LIKE '%value%'

它给了我包含“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%' 

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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%'

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