我希望运行一个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...
?>
有办法做到这一点吗?任何帮助都会很棒。谢谢!
答案 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[[:>:]]'