У меня есть база данных, которую я не могу изменить, которая содержится в таблице1 в поле varchar (255) field1, 32-битное целочисленное значение.sql query integer в строке
Меня интересуют последние десять или такие записи таблицы, из которых целое число меньше заданного значения параметра.
Запуск следующего оператора SQL работает почти:
echo 'select field1 from table1 where field1 < 123456 order by field1;'|mysql
Проблема заключается в том, что field1 содержит значения, как
123450
123453
, который ответит на выбор, но и ценности, как
12344
12345
, которые также соответствуют критериям, из-за порядка сортировки и используемого метода (sort wi го строки?).
Проблема, конечно, в недостатке ведущих нулей, которые я не могу вам помочь.
Каков наилучший способ решения этого вопроса в виде чистого sql-запроса? Из-за ограничений по времени в конечном решении я предпочитаю один запрос для каждого параметра.
Будет внешний вид литья работа как 'конвертируйте («тест», CHAR CHARACTER SET utf8); SELECT CAST ('test' AS CHAR CHARACTER SET utf8); ' –
@RanadipDutta. , , Я верю, что вернет ошибку, если строка содержит не-цифры. –
Да, правильно. Но я должен сказать, что тихая конвертация отличная –