gpt4 book ai didi

php - 具有多个绑定(bind)参数的 MySQL UTF-8 全文搜索

转载 作者:行者123 更新时间:2023-11-29 05:26:04 25 4
gpt4 key购买 nike

我的查询显示如下:

SELECT advert_id
FROM oop_adverts
WHERE cat_down = :id
AND province = :province
AND MATCH (location) AGAINST (:location);

在实践中:

SELECT advert_id 
FROM oop_adverts
WHERE cat_down = 3
AND province = 5
AND MATCH (location) AGAINST ('Krakow');

如果我尝试这个查询,mysql 最终得到 0 个结果。问题是查询中的波兰语短语。当我将此查询替换为:

SELECT advert_id 
FROM oop_adverts
WHERE cat_down = 3
AND province = 5
AND MATCH (location) AGAINST ('Krakow') COLLATE utf8_unicode_ci;`

我得到了:

Syntax error or access violation: 1253 COLLATION 'utf8_unicode_ci' is not valid for CHARACTER SET 'binary''

我不知道我应该在脚本 php 和 mysql 中使用什么排序规则。你能帮帮我吗?

附言。对不起我的“最好的英语”兄弟。

最佳答案

什么是表架构?

我猜“location”被定义为二进制字符串,不能使用像 utf8_unicode_ci 这样的排序规则进行比较。在此处阅读以获取更多信息。

http://dev.mysql.com/doc/refman/5.0/en/charset-binary-collations.html

编辑:

请告诉我们您的架构以获得进一步的帮助。但是尝试这样的事情:

SELECT advert_id 
FROM oop_adverts
WHERE cat_down = 3
AND province = 5
AND MATCH (CONVERT(BINARY(location) USING utf8)) AGAINST ('Krakow');

关于php - 具有多个绑定(bind)参数的 MySQL UTF-8 全文搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20161245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com