如何选择某种文本格式的行?

时间:2014-09-11 10:16:05

标签: mysql sql

对于一个不明确的问题抱歉,因为我不知道如何正确询问。让我解释一下。我想在mySQL中搜索一些行。只有这种格式 - “product1”(文字和数字)。在我的桌子旁边。还有一些其他行也以“产品”开头。但他们没有数字。

这是我的桌子。

**product_db**
    +----------+-------+
    |    key   | value |
    +----------+-------+
    | product1 |  100  |
    +----------+-------+
    | product2 |  184  |
    +----------+-------+
    | product3 |  170  |
    +----------+-------+
    | productA |  210  |
    +----------+-------+
    | productB |  100  |
    +----------+-------+

这是mySQL:

select * from product_db where key like 'product%'

运行代码后。每一行都显示出来。因为它们都以“产品”开头。 我希望只显示前面跟着数字的3行。如何在mySQL中编写命令。

2 个答案:

答案 0 :(得分:3)

你应该使用regex

select * from product_db where key REGEXP '^product[0-9]+$';

答案 1 :(得分:1)

SELECT 'product1' REGEXP '[product][0-9]';
+------------------------------------+
| 'product1' REGEXP '[product][0-9]' |
+------------------------------------+
|                                  1 |
+------------------------------------+
1 row in set (0.01 sec)

SELECT 'productA' REGEXP '[product][0-9]';
+------------------------------------+
| 'productA' REGEXP '[product][0-9]' |
+------------------------------------+
|                                  0 |
+------------------------------------+
1 row in set (0.00 sec)