Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Подскажите как будет правильно, чтобы минимизировать количество запросов к базе?
|
|||
|---|---|---|---|
|
#18+
Поиск должен происходить в одном поле базы нескольких значений. Есть форма, в ней указываются значения которые необходимо найти в одном из полей. Допустим таблица базы имеет следующий вид В форме для поиска указали 5 значений (“ a ”,” b ”,”e”,” g ”,”u”). Теперь нужно произвести поиск всех 5-ти значений в таблице (найдет три совпадения) и вывести на обозрение те, которые не нашлись в таблице (” e ” и ” u ”). Собственно вопрос как лучше? 1. Создать массив (arr_1) со значениями которые нужно найти (“ a ”,” b ”,”e”,” g ”,”u”) и из таблицы получить массив (arr_2) в который занести все значения поля 2. Затем из массива (arr_1) выкинуть все значения которые совпали и вывести то, что осталось. 2. Вести в базе в поле 2 поиск сразу всех 5-ти значений SELECT * FROM таблица WHERE поле2 IN (“ a ”,” b ”,”e”,” g ”,”u”); А как тогда выкинуть те которые совпали и оставить только те которые не нашлись (уникальные) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2014, 21:51 |
|
||
|
Подскажите как будет правильно, чтобы минимизировать количество запросов к базе?
|
|||
|---|---|---|---|
|
#18+
я бы выбрал второй вариант, а потом в "фетче" отсеять которых нет, через тот же in_array к примеру, или array_diff в конце. Но запрос точно из 2го варианта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2014, 22:24 |
|
||
|
Подскажите как будет правильно, чтобы минимизировать количество запросов к базе?
|
|||
|---|---|---|---|
|
#18+
NOT IN, парни.... NOT IN !!! Вы чего? :) Дак ещё и вопрос не в той ветке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2014, 22:46 |
|
||
|
Подскажите как будет правильно, чтобы минимизировать количество запросов к базе?
|
|||
|---|---|---|---|
|
#18+
Програмёр, дык это чего, 2 запроса делать? мож я чего не до вкурил) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2014, 23:18 |
|
||
|
Подскажите как будет правильно, чтобы минимизировать количество запросов к базе?
|
|||
|---|---|---|---|
|
#18+
я так понял, что надо вывести значения из формы, по которым ничего не найдено, а тут видимо действительно вариант с not in).. Пойду спать лучше( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2014, 23:28 |
|
||
|
Подскажите как будет правильно, чтобы минимизировать количество запросов к базе?
|
|||
|---|---|---|---|
|
#18+
Sergey_555и вывести на обозрение те, которые не нашлись в таблице (” e ” и ” u ”). Оба варианта не очень хороши. Код: sql 1. Это даст тебе кода имеющиеся в таблице. А потом сравни полученный список с оригинальным массивом. Все. Варианты с not in тебе не пойдут. Они выдадут все значения которые есть в таблице и которых нету в списке (s, d, f, h, etc). А это не то что тебе нужно. Впрочем, если ты сможешь сделать себе вторую таблицу в которой будет хранится список из (a,b,e,g,u) то уже на него можно было бы натравливать not in и/или [not] exists. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2014, 00:06 |
|
||
|
Подскажите как будет правильно, чтобы минимизировать количество запросов к базе?
|
|||
|---|---|---|---|
|
#18+
White Owl, ну если человеку очень хочеться, то можно временную таблицу на лету делать select 'a' union select 'b' union ... и джоином получить сразу те, которых нету. а вообще довольно таки быстро на индексном поле сработает и not exists 'a' or not exists 'b'.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2015, 16:15 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=38840126&tid=1462115]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
65ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 374ms |

| 0 / 0 |
