0

我的脚本很简单。

SELECT file_name FROM images WHERE `id` = '$id' AND `file_name` LIKE '%_1.jpg'

当我在 mysql 中运行它时,它返回 (id)_1.jpg 和 (id)_11.jpg 我怎样才能让它只找到 (id)_1.jpg?

4

2 回答 2

8

您必须转义下划线:

SELECT file_name FROM images WHERE `id` = '$id' AND `file_name` LIKE '%\_1.jpg'

参考:http ://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html#operator_like

于 2013-03-16T21:39:53.413 回答
1

这是因为_匹配任何单个字符,而不是文字下划线。

您可以避开下划线\_,但我会认真考虑使用,regexp而不是like因为它更具表现力和灵活性。

有关详细信息,请参阅http://dev.mysql.com/doc/refman/5.0/en/pattern-matching.html(关于_in的使用like和 的力量regexp)。

于 2013-03-16T21:44:10.653 回答