Select like and char_length (MySQL)

Применять операторы LIKE и CHAR_LENGTH вместе можно вполне спокойно. Особенно если на поле по которому идет выборка висит индекс.

Например у нас есть таблица phone с номерами телефонов:

Таблица phone

CREATE TABLE `phone` ( `phone_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `phone_number` VARCHAR(20) NOT NULL, PRIMARY KEY (`phone_id`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB;

Данные

phone_idphone_number
179659912462
279148146868
379253251933
4491725231568
5390815522080
63800671459038

LIKE и CHAR_LENGTH

Например нам надо выбрать все телефоны из России, запрос будет выглядеть следующим образом:

SELECT * FROM `phone` WHERE `phone_number` LIKE '79%' AND CHAR_LENGTH(`phone_number`) = 11;

В результате будут выбраны следующие записи:

phone_idphone_number
179659912462
279148146868
379253251933

Категории

СУБДMySQLОператоры SQLSELECTLIKECHAR_LENGTH

Читайте также

Комментарии