有没有办法从MySQL表中选择一个字段以某个字符/数字结尾?

时间:2012-10-16 09:27:09

标签: php 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...
?>

有办法做到这一点吗?任何帮助都会很棒。谢谢!

7 个答案:

答案 0 :(得分:2)

SELECT ...
  WHERE somefield LIKE '%1'

答案 1 :(得分:2)

SELECT id FROM table WHERE mod(id,10)= 1

试一试

答案 2 :(得分:1)

SELECT id
  FROM table
 WHERE id LIKE '%0'

答案 3 :(得分:1)

如果您需要查找字段是否以数字结尾,则可以使用正则表达式,如下所示

SELECT id FROM table WHERE id REGEXP '[0-9]$'

希望它有所帮助...

答案 4 :(得分:0)

你可以使用强制转换和LIKE来实现它,但是对于任何非常重要的数据,性能可能都很糟糕(我没有在你的特定情况下进行测试,但根据我的经验,转换为字符串,所以你可以使用字符串操作真的减慢查询速度)。

更好的方法是使用模数。

例如,要获取数字字段以4:

结尾的所有行
SELECT *
FROM table
WHERE MOD(column_of_interest, 10) = 4

同样,我没有对此进行基准测试,但它可能会比铸造更好。

当然,如果列类型已经是一个字符串,那么LIKE是要走的路,因为在字符串上使用MOD也需要强制转换。

答案 5 :(得分:0)

您可以使用LIKE和通配符表达式 它应该像

SELECT id FROM table WHERE id REGEX '%0$'
SELECT id FROM table WHERE id REGEX '%1$'

等等。

答案 6 :(得分:0)

SELECT id FROM table WHERE id REGEXP '1[[:>:]]'