Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.84/86: Рейтинг темы: голосов - 86, средняя оценка - 4.84
1 / 1 / 1
Регистрация: 21.03.2014
Сообщений: 185

Выборка из mysql из одного столбца по нескольким параметрам

16.06.2014, 23:28. Показов 17338. Ответов 39
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую!

Провожу выборку из таблицы, нужно из одного столбца выбрать значения равные одному и так же второму параметру.
Делаю так, срабатывает только если цифры
PHP
1
$sth = $dbh->prepare("SELECT * FROM `db` WHERE  `col` in (0,1) ORDER BY `id` DESC LIMIT 20");
а если например
PHP
1
$sth = $dbh->prepare("SELECT * FROM `db` WHERE  `col` in ('op1','op2') ORDER BY `id` DESC LIMIT 20");
то уже нет..
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.06.2014, 23:28
Ответы с готовыми решениями:

Как можно найти строки в таблице по нескольким параметрам одного столбца?
Как можно найти строки в таблице по нескольким параметрам одного столбца? Допустим у нас есть: столлбец1, столлбец2, столлбец3 Мне...

Выборка по нескольким параметрам + сложение
Здрасьте! У меня проблемка не могу грамотно составить запрос для выборки по нескольким параметрам SELECT SUM( `o1` ) , SUM( `o1_1` ) ,...

Выборка данных из БД по нескольким параметрам
Здравствуйте, подскажите пожалуйста как можно реализовать запрос для вот такой фильтрации на странице? В принципе у меня есть вот такой...

39
368 / 406 / 165
Регистрация: 29.05.2014
Сообщений: 1,494
17.06.2014, 00:18
SQL
1
SELECT * FROM `твоя_таблица` WHERE `столбец` LIKE '%параметр№1%' AND `столбец` LIKE '%параметр№2%'
0
1 / 1 / 1
Регистрация: 21.03.2014
Сообщений: 185
17.06.2014, 01:02  [ТС]
Прочитал что в pdo in может принимать только одно значение.. Но можно вставить массив, никак не получается, подскажите кто знает, что сделал не правильно
PHP
1
2
3
4
$ids = array(0,$username);
$sth = $dbh->prepare("SELECT * FROM `chat` WHERE `id` > :last_id and `room` = '$room' and  `private` IN (:ids) ORDER BY `id` DESC LIMIT 20");
$sth->bindParam(':ids', $ids, ':last_id', $last_id, PDO::PARAM_INT);
$sth->execute();
0
368 / 406 / 165
Регистрация: 29.05.2014
Сообщений: 1,494
17.06.2014, 01:11
Что тебе конкрет но надо? IN это аналог OR а тебе нужен судя по
Цитата Сообщение от Cript Посмотреть сообщение
одному и так же второму параметру
нужен - AND.
Я тебе уже привёл пример запроса который нужен под твою задачу.
0
1 / 1 / 1
Регистрация: 21.03.2014
Сообщений: 185
17.06.2014, 01:25  [ТС]
Цитата Сообщение от BarbosLV Посмотреть сообщение
привёл пример запроса который нужен под твою задачу
Решил ради интереса попробовать
PHP
1
$sth = $dbh->prepare("SELECT * FROM `chat` WHERE `id` > :last_id and `room` = '$room' and `private` LIKE '0' AND `private` LIKE '$username' ORDER BY `id` DESC LIMIT 20");
Но не сработало
0
368 / 406 / 165
Регистрация: 29.05.2014
Сообщений: 1,494
17.06.2014, 01:34
А где %%
0
1 / 1 / 1
Регистрация: 21.03.2014
Сообщений: 185
17.06.2014, 01:49  [ТС]
Цитата Сообщение от BarbosLV Посмотреть сообщение
А где %%
Точно так же как и с IN выбирает либо по первому параметру либо по второму..
0
368 / 406 / 165
Регистрация: 29.05.2014
Сообщений: 1,494
17.06.2014, 02:51
Цитата Сообщение от Cript Посмотреть сообщение
Точно так же как и с IN выбирает либо по первому параметру либо по второму..
0
1 / 1 / 1
Регистрация: 21.03.2014
Сообщений: 185
17.06.2014, 17:15  [ТС]
сами проверьте
0
368 / 406 / 165
Регистрация: 29.05.2014
Сообщений: 1,494
17.06.2014, 17:31
А что тут проверять?
SQL
1
SELECT * FROM `твоя_таблица` WHERE `столбец` LIKE '%параметр№1%' AND `столбец` LIKE '%параметр№2%'
Это же как 2+2, элементарно. От тебя требуется только скопировать и поменять названия таблицы, столбца и параметров для выборки. И ни при каких обстоятельствах этот код не выдаст только один из параметров. Другое дело если ты включил отсебятину и внёс изменения.
0
1 / 1 / 1
Регистрация: 21.03.2014
Сообщений: 185
17.06.2014, 17:33  [ТС]
Цитата Сообщение от BarbosLV Посмотреть сообщение
отсебятину и внёс изменения
изначально же писал что запрос проводится с помощью PDO
0
368 / 406 / 165
Регистрация: 29.05.2014
Сообщений: 1,494
17.06.2014, 17:41
Цитата Сообщение от Cript Посмотреть сообщение
изначально же писал что запрос проводится с помощью PDO
Какая разница? Я же привожу пример самого запроса. А уж как ты его вводишь дело десятое.
0
1 / 1 / 1
Регистрация: 21.03.2014
Сообщений: 185
17.06.2014, 17:46  [ТС]
Цитата Сообщение от BarbosLV Посмотреть сообщение
Какая разница? Я же привожу пример самого запроса. А уж как ты его вводишь дело десятое.
Разница есть, поэтому я и писал подскажите кто знает
0
368 / 406 / 165
Регистрация: 29.05.2014
Сообщений: 1,494
17.06.2014, 17:53
Цитата Сообщение от Cript Посмотреть сообщение
Разница есть
Приехали.
Значит ты утверждаешь что есть разница в синтаксисе SQL-запросов в зависимости от метода общения с БД?
0
1 / 1 / 1
Регистрация: 21.03.2014
Сообщений: 185
17.06.2014, 17:57  [ТС]
Я утверждаю что такая конструкция
PHP
1
$sth = $dbh->prepare("SELECT * FROM `db` WHERE `col` LIKE '%$op1%' AND `col` LIKE '%$op2%'");
выведет только первый параметр
0
368 / 406 / 165
Регистрация: 29.05.2014
Сообщений: 1,494
17.06.2014, 18:09
Цитата Сообщение от Cript Посмотреть сообщение
Я утверждаю что такая конструкция выведет только первый параметр
Бред. Что в переменных? Случайно не одинаковый параметр?
`db`-именно таблица? А не база данных?
`col`- название столбца в этой же таблице?
0
1 / 1 / 1
Регистрация: 21.03.2014
Сообщений: 185
17.06.2014, 18:10  [ТС]
PHP
1
2
3
$sth = $dbh->prepare("SELECT * FROM `chat` WHERE `id` > :last_id and `room` = '$room' and `private` LIKE '%0%' and `private` LIKE '%$username%' ORDER BY `id` DESC LIMIT 20");
$sth->bindParam(':last_id', $last_id, PDO::PARAM_INT);
$sth->execute();
0
88 / 88 / 34
Регистрация: 22.05.2012
Сообщений: 404
18.06.2014, 12:16
PHP
1
$sth = $dbh->prepare("SELECT * FROM `db` WHERE  `col` in ('op1','op2') ORDER BY `id` DESC LIMIT 20");
Должно все работать.
Варианта 2. Либо в db.col нету op1 , op2. Либо борода с кодировкой
SQL
1
SHOW VARIABLES LIKE 'character_set_client'
Кодировка соединения с бд
0
368 / 406 / 165
Регистрация: 29.05.2014
Сообщений: 1,494
18.06.2014, 12:27
in ('op1','op2')
это или op1 или op2. А ему надо op1 и op2.
0
1 / 1 / 1
Регистрация: 21.03.2014
Сообщений: 185
18.06.2014, 13:10  [ТС]
Цитата Сообщение от Programmer_ Посмотреть сообщение
Должно все работать.
я же говорю в мануале про пдо сказано что может только один параметр принимать
Цитата Сообщение от BarbosLV Посмотреть сообщение
это или op1 или op2. А ему надо op1 и op2.
именно так
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.06.2014, 13:10
Помогаю со студенческими работами здесь

Выборка из таблицы mysql по двум параметрам
Здравствуйте все! Нужно из таблицы mysql сделать выборку строки по двум значениям. В базе есть таблица со столбцами id, user_wmid,...

Сложный запрос SQL (Деление одного столбца на два по параметрам отбора)
Помогите собрать сложный запрос. Есть таблица типа: |--idShet--|--Command--|--ActPl--| | 409 | 1 | ...

Выборка данных из столбца Mysql
Здравствуйте форумчане!) Столкнулся с такой проблемой. Делаю запрос в БД <?php $res = mysql_query("SELECT...

Выборка одного столбца матрицы из нескольких равных
Здравствуйте, у меня следующий вопрос. Определить номер столбца матрицы, имеющего максимальную сумму элементов. Если таких столбцов...

Сумма по нескольким параметрам
Таблица (Гонорар): Должность Тип сделки Коэфициент Сотрудник Гонорар Оператор качества Копирайт 8*% Альбина ? ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru