|
Что такое LIKE CONCAT и почему такой результат ?
|
|||
---|---|---|---|
#18+
Есть код на PHP в котором формируется вот такой запрос: SELECT * FROM mapping WHERE 'IML, ул. Гагарина, 28, ТЦ Лотос-М, модуль 27, 1-2 р. дн.' LIKE CONCAT('%', shipping_type_desc, '%') Честно говоря смысл конструкции от меня ускользает, но в итоге в ответе получаем из базы две записи со следующими значениями в поле shipping_type_desc : IML, ул. Гагарина, 2 IML, ул. Гагарина, 28, ТЦ Лотос-М, модуль 27 Проблема в том, что по смыслу алгоритма, нам нужна только вторая из них, а первая не нужна. Кто нибудь понимает как это работает и что надо переделать, чтобы только вторая запись отбиралась ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2019, 16:46 |
|
Что такое LIKE CONCAT и почему такой результат ?
|
|||
---|---|---|---|
#18+
anstrem по смыслу алгоритма может Вы просто нам Ваш "смысл" объясните а то в понедельник, хрустальный шар еще не успел настроиться должным образом на отгадывание, что же в результате нужно ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2019, 16:50 |
|
Что такое LIKE CONCAT и почему такой результат ?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, Не знаю смысла, не мой код, но он прекрасно работал много лет без проблем, ровным образом до тех пор пока у двух пунктов не совпало в точности начало строки по которой идет сравнение и в итог попадает не тот что нужно... Я не понимаю что вообще делает оператор LIKE CONCAT и каким образом по указанной строке находится то что находится с этим оператором ? Оно ищет все строки в которых есть совпадения с чем ? с любой частью искомой или как ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2019, 16:55 |
|
Что такое LIKE CONCAT и почему такой результат ?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2019, 17:01 |
|
Что такое LIKE CONCAT и почему такой результат ?
|
|||
---|---|---|---|
#18+
ScareCrow, Яснее не стало... эту статью я уже видел. В примерах написано что производится конкатенация аргументов Т.е. получается что в запросе LIKE CONCAT('%', shipping_type_desc, '%') в итоге получаем просто LIKE %shipping_type_desc% Попробовал, выкинул CONCAT со скобками, оставил просто LIKE %shipping_type_desc% - НЕ РАБОТАЕТ В чем магия CONCAT ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2019, 17:15 |
|
Что такое LIKE CONCAT и почему такой результат ?
|
|||
---|---|---|---|
#18+
Ладно, сорян, что мучил этим гавном, что там хотел изобразить автор я так и не понял. Выкинул нахрен этот запрос, переписал по другому с обычным LIKE ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2019, 17:30 |
|
Что такое LIKE CONCAT и почему такой результат ?
|
|||
---|---|---|---|
#18+
Оператор LIKE работает самостоятельно, использует аргумент, следующий за ним. Функция CONCAT() тоже самостоятельно работает, использует аргументы в скобках и возвращает некоторое значение. Таким образом, LIKE использует в качестве аргумента значение, возвращаемое функцией CONCAT(). Это к вопросу о "Что такое". anstrem выкинул CONCAT со скобками, оставил просто LIKE %shipping_type_desc% - НЕ РАБОТАЕТ anstrem В чем магия CONCAT ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2019, 18:01 |
|
Что такое LIKE CONCAT и почему такой результат ?
|
|||
---|---|---|---|
#18+
Нечеткий поиск, он такой себе..... нечеткий Судя по всему, ТЗ было построено исходя из того. что нужно вернуть "первое попавшиеся" ( TM ) значение, хоть как-то похожее на заданную строчку. Разумеется, в какой-то момент, "первое попавшиеся не попало" ( TM ). Подозреваю, автору нужно из всех "первых попавшихся" найти наиболее "попавшиеся" и, подозреваю, сортировка по длине результирующей строки его вполне на ближайшие пару месяцев (или год, в общем, сколько там осталось до увольнения или выведения системы из эксплуатации времени) - вполне спасет. IMHO & AFAIK ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2019, 18:12 |
|
Что такое LIKE CONCAT и почему такой результат ?
|
|||
---|---|---|---|
#18+
anstrem Т.е. получается что в запросе LIKE CONCAT('%', shipping_type_desc, '%') в итоге получаем просто LIKE %shipping_type_desc% А ваше LIKE %shipping_type_desc% - это даже не по синтаксису. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2019, 21:57 |
|
|
start [/forum/topic.php?fid=47&fpage=28&tid=1828856]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
103ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 215ms |
0 / 0 |