如何查找包含大写或小写非拉丁词组的结果? (PHP,MySQL)

时间:2019-03-15 08:26:10

标签: php mysql character sql-like

我对非拉丁字符有一些疑问。

查询:

SELECT * FROM table WHERE name LIKE '%{$phrase}%'

PHP:

$phrase = $_POST['phrase'];
//$phrase = strtolower/strtoupper($_POST['phrase']) made no differece

演示数据库:

Asomething (in the db stored as Asomething)
asomething (in the db stored as asomething)
Äsomething (in the db stored as Äsomething)
äsomething (in the db stored as äsomething) 

无论我键入 a 还是 A ,我都会得到想要的结果-两个结果,但是... 如果键入Ä,则只会得到一个包含大写字母的结果。我怎样才能得到他们两个?

已编辑:我使用排序规则utf8_general_ci

2 个答案:

答案 0 :(得分:1)

尝试使用mb_strtolower($phrase , 'UTF-8');

答案 1 :(得分:0)

始终始终小写您的搜索查询。

SELECT * FROM table WHERE LOWER( name ) LIKE '%{$phrase}%'

https://stackoverflow.com/a/2876802/2693543