За последние 24 часа нас посетили 18434 программиста и 1606 роботов. Сейчас ищут 907 программистов ...

Нестандартный like

Тема в разделе "MySQL", создана пользователем inline, 9 фев 2011.

  1. inline

    inline Активный пользователь

    С нами с:
    21 май 2010
    Сообщения:
    466
    Симпатии:
    0
    Есть две таблицы
    В одной (t1) записи типа
    name
    Недорого розовый Nokia X6 со скидкой
    В другой (t2) записи типа
    name
    Nokia X6

    Нужно сделать запрос такого типа

    select * from t1,t2 where t2.name входит в t1.name
     
  2. Ric

    Ric Активный пользователь

    С нами с:
    9 фев 2011
    Сообщения:
    97
    Симпатии:
    2
    Хм, именно такие таблице хочешь сделать?
    можно по другому поступить:
    первую таблицу создать как:
    name | marka | description
    Nokia | Х6 |Недорогой розовый Nokia X6 со скидкой

    вторая таблица:
    name | marka |
    Nokia | Х6 |

    Тогда запрос будет более легче:
    select * from t1,t2 where t2.name=t1.name;
     
  3. inline

    inline Активный пользователь

    С нами с:
    21 май 2010
    Сообщения:
    466
    Симпатии:
    0
    Ric
    есть, то что есть
    твой вариант не катит
     
  4. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    А почему LIKE, REGEXP не подходит?
     
  5. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    [sql]select * from t1 join t2 on t1.name like '%'+t2.name+'%'[/sql]
    Хрен знает будет ли работать.
    Я не уверен что MySQL умеет конкатенировать строки оператором '+'
     
  6. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    Если не умеет, то так.
    select * from t1 join t2 on t1.name like CONCAT('%', t2.name, '%')