Как проверить, содержит ли строка в таблице многобайтовые символы в базе данных MySQL? - PullRequest
1 голос
/ 27 сентября 2011

У меня есть таблица, в которой есть столбец descr, в котором хранятся строковые значения.Некоторые значения в descr содержат многобайтовые символы, и я хочу знать все эти строки, чтобы можно было удалить эти символы.Как я могу запросить таблицы, используя функции MySQL, чтобы определить, какие строки имеют многобайтовые символы.Я использую MySQL версии 5.1

Ответы [ 2 ]

3 голосов
/ 27 сентября 2011
SELECT ...
FROM yourtable
WHERE CHAR_LENGTH(descr) <> LENGTH(descr)

char_length поддерживает многобайтовые символы и возвращает фактическое количество символов. Length () является чистым счетчиком байтов, поэтому 3-байтовый символ возвращает 3.

0 голосов
/ 27 сентября 2011

пробовали ли вы функции сортировки и CHARSET для вашего столбца descr?

Описание этих функций можно найти здесь: http://dev.mysql.com/doc/refman/5.1/en/information-functions.html

Я думаю, что для ваших нужд она лучше подходитФункция УТВЕРЖДЕНИЯ.Вы можете сделать что-то вроде:

 select COERCIBILITY(descr, COLLATE utf8) from myTable; 

, и если эта функция возвращает 0, вы должны отредактировать строку.

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