Mysql поиск без учета регистра - PullRequest
0 голосов
/ 15 апреля 2011

У меня проблемы с поиском в разных таблицах разных значений.Когда я ищу "Пол", я ничего не получаю, но если я ищу "Пол", я получаю соответствующих лиц для заказов с именем Пол.

$get_orders = mysql_query("
SELECT
  co.id, co.final_id, co.shop_id, co.customer_id, co.payment_type, co.payment_currency, co.billing_email, co.billing_first_name, co.billing_last_name, co.delivery_first_name, co.delivery_last_name, UNIX_TIMESTAMP(co.order_created) AS order_created, c.email, s.site_name, 
MATCH(co.final_id, co.billing_first_name, co.billing_last_name, co.delivery_first_name, co.delivery_last_name, co.order_created) 
AGAINST ('$match_against' IN BOOLEAN MODE) AS score 
FROM customer_orders AS co 
LEFT JOIN customers AS c ON c.id = co.customer_id 
LEFT JOIN shops AS s ON s.id = co.shop_id WHERE co.status = '{$os}' 
ORDER BY score DESC 
LIMIT $offset,$views_page") or die(mysql_error());

Я искал во всем, чтобы найти решение дляЭта проблема.Я попытался использовать UPPER, изменив параметры сортировки базы данных с utf8_general_ci на utf8_bin (двоичный), но моя проблема все еще остается нерешенной ..

Все предложения приветствуются ..

С уважением

Ответы [ 2 ]

1 голос
/ 15 апреля 2011

из руководства по mysql:

Набор символов и параметры сортировки по умолчанию - latin1 и latin1_swedish_ci, поэтому при сравнении недвоичных строк по умолчанию регистр не учитывается.Это означает, что если вы ищете с col_name LIKE 'a%', вы получите все значения столбцов, которые начинаются с A или a.Чтобы сделать этот поиск чувствительным к регистру, убедитесь, что один из операндов имеет чувствительность к регистру или двоичное сопоставление.Например, если вы сравниваете столбец и строку, в которых оба имеют набор символов latin1, вы можете использовать оператор COLLATE, чтобы у любого из операндов были параметры сортировки latin1_general_cs или latin1_bin:

см. чувствительность к регистру mysql

1 голос
/ 15 апреля 2011

См. http://bugs.mysql.com/bug.php?id=22343

Насколько я понимаю, убедитесь, что все строки, если вы хотите найти строку.

Кроме того, переключите кодировку обратно без учета регистра.Нет необходимости, чтобы он был двоичным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...