![]() |
|
Модераторы: skyboy |
![]()
|
|
| KuZyagroup |
|
||||||||
![]() magento solution ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 16.4.2007 Где: Kiev Репутация: нет Всего: 4 |
Есть две таблицы:
node: --nid -id --title - text menu_links --mlid -id --weight -int --link_path -text (выглядит как node/%, где вместо % node.nid) Мне нужно выбрать первую таблицу, зацепив поле weight из второй
Такой код на примере table node
table menu
Результат запроса
|
||||||||
|
|||||||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Замени связывание отбором. Вместо Like используй Instr > 0 или сравнение с Substr(field from 6 for 3).
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| KuZyagroup |
|
|||
![]() magento solution ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 16.4.2007 Где: Kiev Репутация: нет Всего: 4 |
Спасибо огромное! Коротко, ясно, помогло
|
|||
|
||||
| skyboy |
|
||||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
должно быть наоборот:
но так делать не надо. потому что нагрузка. вариант Akina можно использовать как временный. а лучше - разделить поле "link_path" на строковую составляющую и числовую. и тогда было бы:
в таком случае могут использоваться ключи и при прочих равных, вариант с concat/locate/substr будет проигрывать и по скорости, и по логичности записи/читабельности, и по расширяемости |
||||
|
|||||
| KuZyagroup |
|
||||
![]() magento solution ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 16.4.2007 Где: Kiev Репутация: нет Всего: 4 |
2skyboy, спасибо за быстрый ответ.
Тоже отлично работает. Я чуть-чуть не понял, какой из вариантов лучше использовать. То есть что меньше грузит систему.
Я бы с радостью, но эта таблица друпала, модуль ядра( |
||||
|
|||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
При трёх символах для сравнения меньше будет тормозить систему фиксированный SUBSTR имхо... Вот только мне непонятно, почему надо использовать непременно menu.link_path LIKE CONCAT( '%', node.nid ), если префикс постоянен и можно использовать прямое сравнение подстроки или конкатенацию префикса, уходя от Like к строгому сравнению, заведомо более быстрому? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |