如何过滤mysql中包含特定字母的数据?

时间:2018-04-23 23:51:56

标签: mysql sql mariadb

我有一张表pub,它看起来像下表:

+------------+----------------------------------+
| pub_id     | pub_name                         |
+------------+----------------------------------+
| P0010101   | Jex Max Publication              |
| P0020101   | BPP Publication                  |
| H0030102   | New Harrold Publication          |
| H0040101   | Ultra Press Inc.                 |
| P0050101   | Mountain Publication             |
| P0060103   | Summer Night Publication         |
| P0070104   | Pieterson Grp. of Publishers     |
| P0080102   | Novel Publisher Ltd.             |
+--------+--------------------------------------+

我希望使用AND子句进行过滤,其中pub_id列{<1}}包含第1至第2 字母,P0位于0101来自整个句子的第3至第6 封信。

我试过了:

SELECT pub_id, pub_name FROM pub WHERE LEFT(pub_id,2) = 'P0' and pub_id LIKE '%0101%'

但结果是这样的

+------------+----------------------------------+
| pub_id     | pub_name                         |
+------------+----------------------------------+
| P0010101   | Jex Max Publication              |
| P0020101   | BPP Publication                  |
| P0050101   | Mountain Publication             |
+--------+--------------------------------------+

我对结果的期望如下:

+------------+----------------------------------+
| pub_id     | pub_name                         |
+------------+----------------------------------+
| P0010101   | Jex Max Publication              |
+------------+----------------------------------+

1 个答案:

答案 0 :(得分:1)

您可以使用pub_id LIKE 'P00101%'。那时你不需要left()

Documentation on LIKE