Выборка через like на ограниченное число записей

Есть очень большая таблица в БД MySQL. Можно ли найти записи через оператор like на определенной части таблицы, например вывести все записи из первых 1000 строк с оператором like.


Ответы (1 шт):

Автор решения: Сергей

С точки зрения синтаксиса - точно можно, и разными способами. Ниже - один из простых. Во вложененом запросе ограничиваем таблицу до 3 строк и ведем поиск с 'LIKE' на наличие буквы "а" только по ней. Четвертая запись отсекается. На реальной большой базе не проверял это, конечно. Возможно, имеет смысл ещё по id упорядочить (ORDER BY id вставить перед LIMIT) во вложенном запросе - зависит от базы.

/*Это просто создание тестовой базы и вывод ее*/
CREATE TABLE example(
    column1 VARCHAR(25),
    id INT    
);
INSERT INTO example
    VALUES
    ('a', 1),
    ('b', 2),
    ('a', 3),
    ('a', 4);
SELECT * FROM example;  
/*Непосредственно сам запрос*/
SELECT column1, id
FROM (SELECT *
      FROM example
      LIMIT 3) q
WHERE column1 LIKE '%a'

Результат:

Affected rows: 0

Affected rows: 4

Query result:
+---------+----+
| column1 | id |
+---------+----+
| a       | 1  |
| b       | 2  |
| a       | 3  |
| a       | 4  |
+---------+----+
Affected rows: 4

Query result:
+---------+----+
| column1 | id |
+---------+----+
| a       | 1  |
| a       | 3  |
+---------+----+
Affected rows: 2
→ Ссылка