Любой способ выбрать из таблицы MySQL, где поле заканчивается определенным символом / номером?

Я надеюсь запустить 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[[:>:]]'