Если данные под primaryCamera
столбца в следующий формат, то запрос, указанный ниже, может выполнить эту работу.
Формат:Camera X MP.....
Запрос:
SELECT
primaryCamera
FROM table_name
WHERE
CAST(SUBSTRING(@str FROM LOCATE('Camera',@str)+LENGTH('Camera') FOR (LOCATE('MP',@str)-(LOCATE('Camera',@str)+LENGTH('Camera')))) AS UNSIGNED) > 8;
Объяснение:
LOCATE('Camera',@str)
возвращает индекс начала строки Camera
.
LENGTH('Camera')
возвращает длину строки Camera
, которая составляет 6
.
(LOCATE('MP',@str)
возвращает индекс начала строки MP
.
Пример:
Учитывая,
primaryCamera = 'Camera 8 MP, 3264 x 2448 pixels, Carl Zeiss optics, optical image stabilization, autofocus, dual'
StartIndex строки Camera
= 1
длина Camera
= 6
начальный индекс строки MP
= 10
.
Целочисленное значение, которое вы ищете, находится в пределах этого диапазона [7,10]
.
SUBSTRING(string FROM START_INDEX_OF_DESIRED_SUBSTRING FOR LENGTH_YOU_WANT_TO_EXTRACT)
работает следующим образом.`
Для того, чтобы получить, что вам нужно сделать, это:
START_INDEX_OF_DESIRED_SUBSTRING = StartIndex of Camera + Length of Camera
LENGTH_YOU_WANT_TO_EXTRACT = Start position of string
MP - START_INDEX_OF_DESIRED_SUBSTRING
SUBSTRING(primaryCamera FROM START_INDEX_OF_DESIRED_SUBSTRING FOR LENGTH_YOU_WANT_TO_EXTRACT);
Примечание: Вы должны хранить атрибуты вашего продукта (например Camera) в разных столбцах под другой таблицей. В противном случае вы скоро займетесь множеством громоздких задач для обработки даже самой простой задачи.
Я искал «LIKE», но это не хорошо. Требуется любое регулярное выражение. – razaulmustafa
'Камера 8 MP' или' Camera 9 MP' - это то, что вы хотите получить, и 'Camera 7 MP' нет. Разве эта колонка выглядит как этот формат 'Camera X MP'? – Blank
Эта колонка имеет различные номера, такие как 9MP, 3MP, 12MP. Мне нужен запрос, который используется с меньшим или большим, чем число. Например, у меня есть запрос. SELECT 'primaryCamera' FROM table_name WHERE' primaryCamera' REGEXP '[8] «Он работает нормально. Но есть и другое целое число в столбце. Как уже упоминалось выше. Что я могу сделать – razaulmustafa