Неизвестный «лайк» в запросе MySQL - PullRequest
1 голос
/ 04 июля 2019

Моя база данных:

+------------+
| 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



Каким должен быть запрос для извлечения % гггг% ?

Где y = любое число (0/1/2/3/4/5/6/8/9).

Результат будет:

8883277777, 8181888867

Ответы [ 2 ]

3 голосов
/ 04 июля 2019

Похоже, вы после регулярного выражения, вы можете использовать следующий запрос:

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})'

Это то, что вы ищете?

2 голосов
/ 04 июля 2019

Вы можете попробовать использовать ИЛИ

    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%" 
...