Почему оператор like работает по разному?

Mysql, PHP, Apache (веб сайт)
Использую в своем SQLзапросе оператор like.
PHP код одинаковый. Данные разные. Результат поведения оператора like разный. Странно.
(Код используется совместно с ajax - выпадающий список, всё стандартно.)

//keyword - название работы (текст). Например - "Строительство большого дома"
$select_result=mysql_query("SELECT * FROM `my_table` WHERE `job_name` like '".$keyword."%' ORDER BY job_name");

В результате всё работает как надо.
У меня в таблице есть записи - Строительство большого дома, Строительство малого дома, Стр большого дома.
Введя Стр видим 3 все записи, введя Стро - 2 первые записи, введя Строительство б - 1 запись.
Работает как надо.

//keyword - значение работы (в виде числа). Например - "1.0.001" Поле в таблице char(255) utf8_general_ci.
if (is_numeric($keyword)==true)
{
$select_result=mysql_query("SELECT * FROM `my_table` WHERE `job_value` like '".$keyword."%' ORDER BY job_value");
}

У меня в таблице есть записи - 1.0.001, "1.1.001, 1.1.222, 1.1.333.
Введя 1 видим все записи. Введя 1. видим все записи. Введя 1.1 видим 3 записи.
Но введя 1.1. не видим ни одной записи. Но их же три!

С текстом все работает, а с числами нет.
Почему оператор like работает по разному?
  • Вопрос задан
  • 240 просмотров
Решения вопроса 1
Skiphog
@Skiphog
PHP Crutch developer
Условие не срабатывает
is_numeric('1.') // true
is_numeric('1.1') // true
is_numeric('1.1.') // false

Поэтому ваш запрос вообще не выполняется
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@kisaa
Числовое представление с несколькими десятичными точками??? В каком стандарте это описано?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы