SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 31.03.2017 22:45:20

5564ff1aa6
Участник
Зарегистрирован: 31.03.2017
Сообщений: 3

Выборка данных с привязкой к значению из одного столбца

Добрый день подскажите кто сможет.
Имеем таблицу вида
sid|value
---------
25|zxc
22|cxz
23|dsdf
24|wefwe
-----------
Необходимо отображение только при совпадении всех параметров.
пробовал так

SELECT * FROM tbl WHERE (`sid` = '25' AND `value` LIKE 'zxc') AND (`sid` = '22' AND `value` LIKE 'cxz')

не работает, только по  отдельности.
т.е я хочу если есть обе записи "zxc" и "cxz" сделать отображение, иначе не отображать.
Реально под завис, что то сообразить не могу как сделать.
всем спасибо.

Отредактированно 5564ff1aa6 (31.03.2017 22:52:25)

Неактивен

 

#2 31.03.2017 22:52:06

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Выборка данных с привязкой к значению из одного столбца

Пишите пожалуйста, соблюдая правила русского языка.


SELECT
  *
FROM
  `tbl`
WHERE
  ( EXISTS (SELECT 1 FROM tbl WHERE `sid` = 25 AND `value`= 'zxc' ) )
    AND
  ( EXISTS (SELECT 1 FROM tbl WHERE `sid` = 22 AND `value`= 'cxz' ) )
;


такой запрос попробуйте.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 31.03.2017 22:56:53

5564ff1aa6
Участник
Зарегистрирован: 31.03.2017
Сообщений: 3

Re: Выборка данных с привязкой к значению из одного столбца

Нет, при таком запросе отображаются все данные из таблицы, а мне нужны только то что совпало.

Отредактированно 5564ff1aa6 (31.03.2017 22:59:02)

Неактивен

 

#4 31.03.2017 23:00:46

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Выборка данных с привязкой к значению из одного столбца

Отображаются все данные из таблицы, при условии, что в таблице есть те строки, которые Вы указали.
Что нужно, чтобы выводилось если

1) есть одна нужная строка, но нет другой?
2) есть обе нужных строки?
3) нет ни одной нужной строки?


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 31.03.2017 23:06:22

5564ff1aa6
Участник
Зарегистрирован: 31.03.2017
Сообщений: 3

Re: Выборка данных с привязкой к значению из одного столбца

мне надо следующее, пример если если sid равен 22 и value равно cxz, то отобразить только эту строку.

а если допустим, (sid=22 and value=22) но при этом sid=25 и value не равно zxc. то не отображать ничего.

Неактивен

 

#6 31.03.2017 23:46:42

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Выборка данных с привязкой к значению из одного столбца

5564ff1aa6 написал:

мне надо следующее, пример если если sid равен 22 и value равно cxz, то отобразить только эту строку.

SELECT * FROM `tbl` WHERE`sid` = 25 AND `value`= 'zxc';

5564ff1aa6 написал:

а если допустим, (sid=22 and value=22) но при этом sid=25 и value не равно zxc. то не отображать ничего.

value=22
value вроде принимает строчное значение?

SELECT
  25,'zxc',22,'cxz'
FROM
  `tbl`
WHERE
  ( EXISTS (SELECT 1 FROM tbl WHERE `sid` = 25 AND `value`= 'zxc' ) )
    AND
  ( EXISTS (SELECT 1 FROM tbl WHERE `sid` = 22 AND `value`= 'cxz' ) )
;
 


А вообще имхо гораздо логичнее сделать вот так:

SELECT
  count(*)
FROM
  `tbl`
WHERE
(`sid` = 25 AND `value`= 'zxc' ) OR (`sid` = 22 AND `value`= 'cxz' ) ;
 


И если результат запроса равен 2, то и реализуйте ту логику, которая должна быть, если есть нужные 2 строки в таблице.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson