我在mysql中查询数据库表,其中数据以下面的格式存储。
示例:
+------------+------------+------------+
| adv_images | start_date | end_date |
+------------+------------+------------+
| 21.jpg | 2013-05-22 | 2013-05-28 |
| 2.jpg | 2013-05-22 | 2013-05-28 |
| 2a.jpg | 2013-05-22 | 2013-05-28 |
| 2b.jpg | 2013-05-22 | 2013-05-28 |
| 2c.jpg | 2013-05-22 | 2013-05-28 |
+------------+------------+------------+
还有更多类似格式的数据,如3.jpg,3a.jpg,3b.jpg,41.jpg等。
我正在使用此查询来查询数据库: -
SELECT adv_images
WHERE adv_images
REGEXP BINARY'^(2+ [a-z]?)';
我的要求是只拉出那些仅以2开头的adv_images(即2.jpg,2a.jpg等)。但它拉21.jpg,22.jpg,22a.jpg等。
我们如何解决它。
答案 0 :(得分:1)
正如本杰明所指出的,这将是你的完美匹配:
^2([a-zA-Z]?)+\.jpg
含义:
2
.jpg
答案 1 :(得分:0)
这可能有所帮助:
SELECT adv_images WHERE adv_images + 0 = 2;
答案 2 :(得分:0)
试试这个
^([2+][a-z]?)\.jpg
所以你的查询变成了
SELECT adv_images WHERE adv_images REGEXP BINARY '^([2+][a-z]?)\.jpg';
答案 3 :(得分:0)
感谢大家尝试这一点,但我找到了解决问题的简单方法。
SELECT adv_images WHERE adv_images REGEXP BINARY'^(2+ [a-z]?)';我正在尝试这个,但现在我刚刚添加了一个'。'在regx中
前 -
SELECT adv_images WHERE adv_images REGEXP BINARY'^(2+ [a-z。]?)';它对我来说非常适合。