Я надеюсь запустить mysql_query, где я могу выбрать строку, если определенное поле заканчивается числом. Например:
<?php $query = mysql_query("SELECT id FROM table WHERE [ID ENDS IN 0]"); $query = mysql_query("SELECT id FROM table WHERE [ID ENDS IN 1]"); $query = mysql_query("SELECT id FROM table WHERE [ID ENDS IN 2]"); $query = mysql_query("SELECT id FROM table WHERE [ID ENDS IN 3]"); //and so on... ?>
Есть ли способ сделать это? Любая помощь будет большой. Спасибо!
SELECT ... WHERE somefield LIKE '%1'
SELECT id FROM table WHERE mod (id, 10) = 1
Попробуй
SELECT id FROM table WHERE id LIKE '%0'
Вы можете использовать регулярные выражения, если вам нужно найти, заканчивается ли поле числом или нет, как показано ниже
SELECT id FROM table WHERE id REGEXP '[0-9]$'
Надеюсь, поможет…
Вы можете сделать это с помощью броска и LIKE, но производительность, вероятно, будет ужасной для любого нетривиального количества данных (я не тестировал в вашем конкретном случае, но по своему опыту, кастинг в строку, чтобы вы могли использовать строку операции действительно замедляют запрос).
Лучше всего использовать модуль.
Например, чтобы получить все строки, где числовое поле заканчивается на 4:
SELECT * FROM table WHERE MOD(column_of_interest, 10) = 4
Опять же, я не сравнивал это, но, вероятно, это будет лучше, чем кастинг.
Конечно, если тип столбца уже является строкой, тогда LIKE – это путь, так как использование MOD в строках также требует приведения.
Вы можете использовать LIKE и выражение wild card, это должно быть что-то вроде
SELECT id FROM table WHERE id REGEX '%0$' SELECT id FROM table WHERE id REGEX '%1$'
и так далее.
SELECT id FROM table WHERE id REGEXP '1[[:>:]]'