我有点困难,需要一些帮助:)
我有一个MySQL表,由1列组成,使用UTF8mb4_general_ci作为排序规则。此列包含许多不同语言的许多名称。
| name |
|-----------------|
| François Fillon |
| Obama |
| Some CJK chars |
我还有一个PHP数组,里面有很多名字。实施例
["Francois Fillon" => [...], "Obama" => [...]]
我想针对数据库运行这些名称,并检查每个名称是否存在。如果我们运行此声明:
SELECT * FROM `kwe` WHERE `phrase` = "Francois Fillon" OR `phrase` = "Obama"
它将产生以下结果:
| François Fillon |
| Obama |
注意:这是因为由于MySQL中的* _general_ci方案,表中的ç和数组中的c是等效的。这很好,因为我的用户可能最终使用常规c,而实际上他意味着使用ç。
我试图在这里解决的问题是,一旦这些结果返回到应用程序层,它们需要合并回原始数组,其中包含用户输入表单中的名称。在PHP中,“FrançoisFillon!= Francois Fillon”。
我该如何解决这个问题?
编辑(澄清):
用户输入“Francois Fillon”并将其保存到阵列中 - > MySQL将其匹配到“FrançoisFillon”并返回结果 - >数组
中不存在 $ array [“FrançoisFillon”]