|
|
|
Выборка данных
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Есть таблица с полями: id - int name - varchar count - int как выбрать строки в которых count=456 и count=777 и count=56944 в общем вариантов count может быть много, например > 100 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 09:15:57 |
|
||
|
Выборка данных
|
|||
|---|---|---|---|
|
#18+
если OR, то count in (много count) если AND, то count in (много count) having count например > 100 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 09:32:24 |
|
||
|
Выборка данных
|
|||
|---|---|---|---|
|
#18+
SELECT * FROM table WHERE count in (456, 777, 958, 12347) Вот так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 09:46:57 |
|
||
|
Выборка данных
|
|||
|---|---|---|---|
|
#18+
SkillsoftSELECT * FROM table WHERE count in (456, 777, 958, 12347) Вот так? Это если надо выбрать те, у кого есть хотя бы один count из перечисленных. А если надо, чтобы присутствовали не менее чем, например, 3, то Код: sql 1. 2. 3. 4. 5. Если нужно наличие ВСЕХ, то условие в HAVING будет, есссно, "=4" (ибо значений - четыре). Если нужны не name, а полностью записи - то указанную конструкцию следует использовать как подзапрос для отбора: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 09:58:04 |
|
||
|
Выборка данных
|
|||
|---|---|---|---|
|
#18+
Скажите, правильно ли так строить запрос? Если да, то какой максимальной длинны массив можно будет использовать? $arr = [1,2,3]; $arr2 = [5,6]; "SELECT * FROM test WHERE count IN(".implode(",", $arr).") OR count IN(".implode(",", $arr2).")"; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 00:14:07 |
|
||
|
Выборка данных
|
|||
|---|---|---|---|
|
#18+
Главное, проверяйте, что в массиве только числа. А размер запроса ограничен max_allowed_packet . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 07:19:01 |
|
||
|
Выборка данных
|
|||
|---|---|---|---|
|
#18+
Skillsoft , я бы "склеил" массивы до формирования запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 08:52:54 |
|
||
|
Выборка данных
|
|||
|---|---|---|---|
|
#18+
Извиняюсь, не совсем правильно привел пример $arr = [1,2,3]; $arr2 = [5,6]; "SELECT * FROM test WHERE count IN(".implode(",", $arr).") OR data IN(".implode(",", $arr2).")"; Каждый массив для своей колонки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2015, 01:43:27 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39029178&tid=1832813]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
20ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 189ms |
| total: | 280ms |

| 0 / 0 |
