【问题标题】:Unknown 'like' in MySQL queryMySQL查询中的未知“喜欢”
【发布时间】:2019-07-04 18:55:51
【问题描述】:

我的数据库:

+------------+
| Number     |
+------------+
| 8883277777 |
+------------+
| 8883555354 |
+------------+
| 8181888867 |
+------------+
| 8881143185 |
+------------+

当我们这样做时:

SELECT * FROM numbers WHERE Number LIKE "88%"

结果是:

8883277777、8883555354、8881143185


当我们这样做时:

SELECT * FROM numbers WHERE Number LIKE "%88%"

结果是:

8181888867


当我们这样做时:

SELECT * FROM numbers WHERE Number LIKE "%77%"

结果是:

8883277777



获取%yyyy%的查询应该是什么?

其中 y = 任意数字 (0/1/2/3/4/5/6/8/9)。

结果将是:

8883277777、8181888867

【问题讨论】:

  • 您对这一切没有疑问吗?你只是说? :P

标签: mysql where-clause sql-like


【解决方案1】:

您似乎在使用正则表达式,您可以使用以下查询:

SELECT 
    *
FROM
    numbers
WHERE
    Number REGEXP '(0{4}|1{4}|2{4}|3{4}|4{4}|5{4}|6{4}|7{4}|8{4}|9{4})'

这就是你要找的东西吗?

【讨论】:

  • 不知何故一样+1,那么查询%yyyy的结果是8883277777
【解决方案2】:

您可以尝试使用 OR

    SELECT * 
    FROM numbers 
    WHERE Number LIKE "%0000%"
    OR Number LIKE "%1111%"
    OR Number LIKE "%2222%"
    OR Number LIKE "%3333%"
    OR Number LIKE "%4444%"
    OR Number LIKE "%5555%"
    OR Number LIKE "%6666%"
    OR Number LIKE "%7777%"
    OR Number LIKE "%8888%"     
    OR Number LIKE "%9999%" 

【讨论】:

  • 使用OR使用regex哪个更好?为正确答案 +1
猜你喜欢
  • 2012-12-23
  • 2014-03-30
  • 1970-01-01
  • 2011-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-03
  • 2012-09-18
相关资源
最近更新 更多