mysql编写的语句和区分大小写

ygya80vv  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(377)

过去我用的是 query mysqli类的方法。现在我用prepare方法重写了很多代码。我有一张有校勘的table utf8mb4_bin (区分大小写)但是用户应该执行不区分大小写的查询,过去的查询是这样的

SELECT SQL_CALC_FOUND_ROWS * FROM utenti WHERE nome LIKE _utf8mb4 ? COLLATE utf8mb4_unicode_ci ORDER BY id_utente ASC

我知道我不能用这种语法来编写语句,最好的方法是什么?我认为强制存储值和查询值为小写,但我认为这不是最好的方法。

esyap4oy

esyap4oy1#

您应该能够对列应用不区分大小写的排序规则,然后将其与参数进行比较:

SELECT * FROM utenti 
WHERE nome COLLATE utf8mb4_unicode_ci LIKE ? 
ORDER BY id_utente ASC

p、 s:我建议把它去掉 SQL_CALC_FOUND_ROWS . 如果你不使用 LIMIT . 这只会让表演很糟糕。

uqjltbpv

uqjltbpv2#

您所需要做的就是在php中将值转换为大写,并用 upper 在查询中。

select * from table where upper(column) like ?

用那个?设置为要查找的字符串的大写值。

相关问题