2017-01-12 5 views
0

У меня есть DB более 1M записей, и мне нужно выполнить запрос в mysql. У меня 2 колонии с 2 номерами. Один из них - длинный номер предприятия и другой короткий номер антракта. Оба номера связаны между собой. Например: компания будет иметь короткое число 112233445 и длинное число 11223344566777. Что мне нужно сделать, так это выбрать все линии, где короткий номер отличается от начала длинного номера. Вы можете мне помочь ?Complexe sql query in where where

+0

Типы данных столбцов? – jarlh

ответ

1

Использование LIKE:

SELECT * 
FROM yourTable 
WHERE long_num NOT LIKE CONCAT(short_num, '%') 

Если вы также хотите ограничить результаты поиска длинных чисел, которые не имеют 14 символов, то вы можете добавить второе условие к WHERE пункта:

SELECT * 
FROM yourTable 
WHERE long_num NOT LIKE CONCAT(short_num, '%') AND 
     CHAR_LENGTH(long_num) <> 14 
+1

'У меня 2 столбца с 2 номерами.' ... вы интерпретируете это по-другому? –

+0

Thks это работает как шарм – Vince

+0

просто другой вопрос, как кажется эксперт: как я могу получить результаты, когда long_number не имеет 14 персонажей? – Vince