Вы можете сделать это одним запросом, соединив отдельные LIKE с ИЛИ:
SELECT * FROM tablename
WHERE column LIKE 'M510%'
OR column LIKE 'M615%'
OR column LIKE 'M515%'
OR column LIKE 'M612%';
Просто помните, что такие вещи, как LIKE и функции для каждой строки, не всегда хорошо масштабируются. Если ваша таблица, вероятно, станет большой, вы можете захотите рассмотреть возможность добавления еще одного столбца в вашу таблицу для независимого хранения первых четырех символов поля.
Это дублирует данные, но вы можете гарантировать их постоянство, используя триггеры вставки и обновления. Затем поместите индекс в этот новый столбец, и ваши запросы станут такими:
SELECT * FROM tablename WHERE newcolumn IN ('M510','M615','M515','M612');
Это перемещает стоимость расчета в точку, где это необходимо (когда данные изменяются), , а не каждый раз, когда вы ее читаете. На самом деле, вы можете пойти еще дальше и получить новый столбец в виде логического значения, указывающего, что это был один из четырех специальных типов (если эта группа специальных значений будет меняться нечасто). Тогда запрос будет еще быстрее:
SELECT * FROM tablename WHERE is_special = 1;
Этот компромисс между требованием к памяти и скоростью является полезным приемом для больших баз данных - как правило, дисковое пространство дешевое, загрузка ЦП драгоценна, а данные читаются гораздо чаще, чем записываются. Перемещая стоимость расчета на этап записи, вы амортизируете стоимость для всех операций чтения.