我有一个棘手的问题。我有一个数字表:
- 37823782
- 37823782
- 37823782
- 38478934
- 90003922
还有另一个带前缀的表:
- 378
- 3847
- 384
- 001
我想找到匹配最长前缀的所有号码。我用这段代码成功了:
$result = mysql_query("SELECT numbers FROM table1 GROUP BY numbers") or die ("Query error code 1");
while($row = mysql_fetch_array($result))
{
$numbers =$row["numbers"];
$result2 = mysql_query("SELECT * FROM table2 WHERE '".$numbers."' LIKE CONCAT(prefix, '%') ORDER BY CHAR_LENGTH(prefix) DESC LIMIT 1");
while($row2 = mysql_fetch_array($result2))
{
// That's it
}
}
现在我只想做相反的事情。我想找到所有不匹配任何前缀的数字。简而言之,在上面的示例中,我应该得到“90003922”。我想使用 NOT LIKE CONCAT (prefix, '%') 但它不起作用。有什么想法吗?
最佳答案
你可以试试这个
SELECT * FROM table2 WHERE '".$numbers."' NOT LIKE 'prefix%'
关于php - 获取所有与另一个表不匹配的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14182072/