MySql使用Like来查找字符串的最高值

时间:2013-12-06 01:51:10

标签: php mysql sql

我不认为这应该是那么复杂,但是我在构建查询以从表中提取更高更低值时遇到问题,其中标识符更高。

所以基本上,我有一个包含这个(以及其他内容)的表:

8A     6253.85
8B     6184.64

我想找到8B并获得6184.64的值。

我使用了以下查询:

SELECT * FROM payments WHERE contract = '".$contract."' AND payment LIKE '".$x."%' LIMIT 1

其中$ x是8,但当然得到6253.85,因为它是第一个。

我试过了:

SELECT * FROM payments WHERE contract = '".$contract."' AND payment LIKE '".$x."%' DESC LIMIT 1

这基本上就是我想要做的,但这不起作用(sql错误)。

如果有人能给我一个关于如何确保我总是拉出匹配的“最后”行的快速建议,我将不胜感激。

提前致谢。

1 个答案:

答案 0 :(得分:2)

只需添加ORDER BY payment DESC(在LIMIT子句之前)。

 FROM ...
WHERE ...
  AND ...
ORDER BY payment DESC
LIMIT 1

(对于每一行,LIKE谓词返回TRUE或FALSE(或NULL),并且不能用于对更高和更低值进行排序,除非您有“已知”值的特殊情况。)