Могу ли я использовать как два раза?

0

Я хочу сделать выбор mysql, но мне нужно выбрать два типа данных, один начиная с 0256, а другой - с 0356. Могу ли я использовать:

SELECT * FROM table WHERE tel LIKE '0256%' AND '0356%'

спасибо, Sebastian

ИЗМЕНИТЬ У меня проблема с этими запросами в PHP. запрос выше, отлично работает в mysql, но в PHP я получаю результаты только для LIKE '0256%'

Теги:

3 ответа

11
Лучший ответ

Вероятно, вы ищете такой запрос:

SELECT *                /* Select all columns */
FROM table              /* from the table named 'table' */
WHERE tel LIKE '0256%'  /* where the field 'tel' starts with '0256' */
   OR tel LIKE '0356%'  /* or where the field 'tel' start with '0356' */
4

У вас было 2 проблемы с использованием AND вместо OR, и у меня не было LIKE перед вторым параметром

SELECT * FROM table WHERE tel LIKE '0256%' OR tel LIKE '0356%' 
  • 1
    Вам нужен дополнительный tel после OR .
  • 0
    @ Влад, спасибо, хороший улов
0

Вы также можете использовать REGEX для этого:

SELECT * 
FROM table 
WHERE tel RLIKE '0[23]56.*'

Это может сделать все более ясным, так как добавляются дополнительные параметры (предполагается, что они будут). Это может также сделать запрос быстрее, но необходимо выполнить профилирование, чтобы убедиться, что это действительно так.

  • 1
    Regex в MySQL обеспечивает сканирование таблицы - если не использовать подстановочные знаки слева, альтернатива LIKE не будет, поэтому она более эффективна.
  • 0
    Я не знал, что оптимизация регулярных выражений в MySQL была такой ограниченной, но, надеюсь, в будущих версиях возможности для оптимизации увеличатся.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню