2015-04-22 32 views
0

假设我有一个数字1234567890并且我想要做某种循环,创建一些可用于MySQL查询的东西。剥下一个数字并每次返回它减去最后一位

例如:

号是1234567890

查询可用的部分应该是这样的:

SELECT * FROM table WHERE column IN (1234567890, 123456789, 12345678, 1234567, 123456, 12345, 1234, 123, 12, 1) 

打破我的头就这一个,所以我希望有人能帮助我。

非常感谢您提前...

+0

欢迎来到Stack Overflow!这个问题在信息上有点短暂。你可以分享你的尝试,以及你遇到了什么问题? –

回答

4

这是你想要的吗?

where '1234567890' like concat(column, '%') and length(column) > 0 
+2

@ spencer7593。 。 。谢谢。 –

0
$number = "1234567890"; // Has to be string 
$array = array(); 
while(strlen($number) > 1) 
{ 
    $array[] = $number; 
    $number = substr($number, 0, strlen($number)-1); 
} 
$strForMySQL = implode(",", $array); // would return "1234567890,123456789,12345678,........1" 

$query = "SELECT * FROM table WHERE column IN (".$strForMySQL.")"; 
0

你可以使用substr保持剥离与循环次数的最后一个字符。如果你从一个整数开始,你需要将它转换成一个字符串来使其工作。

$x=1234567; 
$x=(string)$x; 

for($i=0; $i<strlen($x); $i++){ 
    //Write SQL here or store them in an array, print...etc. 
    echo substr($x, 0,strlen($x)-$i); 

} 
相关问题