MARAZM, SELECT * FROM `table` WHERE (`pole2` =1 or `pole2` =3) and `pole1` = 1
так самое простое как по мне
(`pole2` =1 or `pole2` =3) это можно пыхом генерировать
MARAZM, SELECT * FROM `table` WHERE (`pole2` =1 or `pole2` =3) and `pole1` = 1
так самое простое как по мне
(`pole2` =1 or `pole2` =3) это можно пыхом генерировать
Koenig, так мне нужно получить pole1. это поиск pole1 у которого в таблице pole2 имеет 1 и более значений или вобще нету такого
MARAZM, как то не логично
если нет ни одного совпадения, то все что равно 1 в поле1 будет верным
Koenig, ну смотри...
Например ищу pole1 у которого pole2 = a есть 2 варианта ответа не найдено и найдено 1 и более значений pole1
тот же смысл если для pole1 у pole2 несколько значений...не найдено вообще или найдено 1 и более
Грубо говоря это рассказ который записан в 2 и более категорий и мне нужно найти рассказ который относится к 1 и более категориями (зависит от выбора перед запросом)
MARAZM, http://johncms.com/forum/index ... 00338 это вроде норм отработает
Koenig, так а смысл мне указывать поле1 если я его ищу? или я не так тебя понял?
Грубо говоря мне нужно получить список id рассказов которые привязаны к 1 или 2 и более рассказам одновременно.
Ищу по категориям Анекдоты и Истории из цикла получаю что как рассказ 1 так и рассказ 2 привязан к категориям Анекдоты и истории значит их и выводить
http://johncms.com/forum/index ... 00332 реально работающий...осталось массив для pole2 запилить
MARAZM, значит я не так понял
# MARAZM (11.02.2016 / 00:39)Посоветую на счёт sql-синтаксиса:
SELECT DISTINCT `pole1` FROM `table` WHERE `pole2` IN ('1' AND '3')
получил то что надо осталось выровнять условие IN() если 1 значение,если 2 и выше чтобы был нормальный запрос.. думаю справлюсь
SELECT DISTINCT `pole1` FROM `table` WHERE `pole2` IN ('1' AND '3')
SELECT DISTINCT pole1 FROM table WHERE pole2 IN (1 AND 3)Переменные в запрос можно писать так//Если в переменной тип string
$sql = "SELECT name FROM table WHERE name = '$name'";
//Если в переменной тип integer
$sql = "SELECT id FROM table WHERE id = $id";
//По такому же принципу и массивы
//Если в массиве тип string
$sql = "SELECT name FROM table WHERE name = '{$datauser['name']}'";
//Если в массиве тип integer
$sql = "SELECT id FROM table WHERE id = {$datauser['id']}";Ну и запрос писать как-то такmysql_query($sql) or die(mysql_error());Если использовать такую запись, то отпадает необходимость в использовании операторов if"SELECT * FROM tbl WHERE field1 = ".$int." AND field2 = '".$string."' LIMIT ".$start.", ".$len.";"
вообще то вот так.
а апострофы нужны для отделения строковых значений от предопределенных операторов
поле like в таблице tbl1
SELECT * FROM tbl1 WHERE `like` = '".$somevar."';
в данном случае апострофы необходимы
$sql = "SELECT * FROM tbl WHERE field1 = $int AND field2 = '$string' LIMIT $start, $len";//Если $somevar хранит строковые данные, то да
$sql = "SELECT * FROM tbl1 WHERE like = '$somevar'";
//Если $somevar хранит число, то нет
$sql = "SELECT * FROM tbl1 WHERE like = $somevar";