我需要根据一组关键字在数据库中执行名称搜索。结果应该区分重音和不区分大小写。
按照我在这里找到的解决方案加上一些修改以允许不区分大小写,我使用了以下代码:
$sql = "SELECT name FROM table_names WHERE LOWER(name) LIKE _utf8 '%".strtolower($keyword)."%' COLLATE utf8_bin";
当搜索关键字包含重音符号时,这对我不起作用。但奇怪的是,这个查询在 phpMyAdmin 中运行良好(但我在某处读到这不应该是可靠的)。这里可能是什么问题?
更新:我将代码修改为:
$sql = "SELECT name FROM table_names WHERE LOWER(name) LIKE LOWER(_utf8 '%$keyword%') COLLATE utf8_bin";
但我仍然没有结果。
谢谢!