Задавайте вопросы, мы ответим
Вы не зашли.
что тут не правильно?
SELECT post_1,post_2 FROM post where post_2 like '%МОСКВА%' and where post_1 like '%000'
Неактивен
пробовал так:
SELECT post_1,post_2 FROM post where post_2 like '%МОСКВА%' OR post_1 like '%000'
тоже чо та не то...
Неактивен
WHERE указывается 1 раз
SELECT post_1,post_2 FROM post WHERE post_2 LIKE '%МОСКВА%' AND post_1 LIKE '%000';
Неактивен
так тоже пробовал...
пишет "syntax error near ""at line 1"
Неактивен
mysql> CREATE TABLE post (post_1 text, post_2 text) charset=cp1251;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT post_1,post_2 FROM post WHERE post_2 LIKE '%МОСКВА%' AND post_1 LIKE '%000';
Empty set (0.00 sec)
Неактивен
а у меня чо та вот так вот сделанная )))
CREATE TABLE `post` (
`post_1` varchar(250) default NULL,
`post_2` varchar(250) default NULL,
`post_3` varchar(250) default NULL,
`post_4` varchar(250) default NULL,
`post_5` varchar(250) default NULL,
`post_6` varchar(250) default NULL,
`post_7` varchar(250) default NULL,
`post_8` varchar(250) default NULL,
`post_9` varchar(250) default NULL,
`post_10` varchar(250) default NULL,
`post_11` varchar(250) default NULL
) TYPE=MyISAM;
может версия старая?
Отредактированно vladimirov (01.03.2008 15:45:40)
Неактивен
получилось!!!
SELECT `post_1`,`post_2` FROM `post` WHERE `post_2` LIKE '%МОСКВА%' AND `post_1` LIKE '___000'
а если в конце пишу LIKE '%000' то вылазит ошибка
так и не понял в чем тут проблема.
обьясните пожалуста
Отредактированно vladimirov (01.03.2008 15:51:45)
Неактивен
Какая именно ошибка, приведите полностью запрос и ошибку, которая выдается
Неактивен
запрос: SELECT `post_1`,`post_2` FROM `post` WHERE `post_2` LIKE '%МОСКВА%' AND `post_1` LIKE '%000'
ошибка: "syntax error near ""at line 1"
запросы выполняю в окошке SQL запросов в программе MySQL-Front 3.2 которая работает через PHP туннель с удаленным MySQL-срвером
Отредактированно vladimirov (01.03.2008 16:43:55)
Неактивен
вариант: SELECT `post_1`,`post_2` FROM `post` WHERE `post_2` LIKE '%МОСКВА%' AND `post_1` LIKE '___000'
вполне сойдет. пускай так и останется.
щас возникла другая проблема
как вместо LIKE '%МОСКВА%' вставить переменную
точно знаю что если сделать так: LIKE '".$z."' - то работать будет...
а как мне туда вставить знак %-та ?
ведь сама $z=МОСКВА
а мне надо что бы в селекте было %МОСКВА%
Отредактированно vladimirov (01.03.2008 16:48:16)
Неактивен
так и вставить LIKE '%".$z."%'
Может быть у Вас Фронт обрабатывает % каким-то особым образом? В консоли mysql синтаксическая ошибка не возникает
Неактивен
да MySQL-Front как та не так обрабатывает
сменил программу на Navicat 8 for MySQL - там кстати квери билдер просто замечательный
тока вот возникла одна проблема о которой я написал чуть ниже
Отредактированно vladimirov (01.03.2008 18:48:25)
Неактивен
SELECT post_1,post_2 FROM post WHERE post_2 LIKE '%".$z."%' AND post_1 LIKE '%000'
заработал.
а щас вот такая вот задачка встала передо мной
надо что бы если в поле post_1 нет записей удовлетворяющих условию LIKE '%000'
то селект должен быть такой: SELECT post_1, post_8 FROM post WHERE post_8='".$z."'"
пробовал всяко разно - но ничо не выходит.
посоветуйте пожалуйста
Отредактированно vladimirov (01.03.2008 18:49:18)
Неактивен
полагаю в селекте должны быть конструкции типа if else на основании например return-а или rezult-а...
тока какой там синтаксис?
Отредактированно vladimirov (01.03.2008 18:49:59)
Неактивен
надо что бы, например, если результат выполнения
SELECT
post.post_1,
post.post_2
FROM
post
WHERE
post.post_2 LIKE '%намцы%' AND
post.post_1 LIKE '%000'
равен нулю то делать вот такой селект
SELECT
post.post_1,
post.post_8
FROM
post
WHERE
post.post_8 = 'НАМЦЫ'
подскажите пожалуйста
Отредактированно vladimirov (01.03.2008 18:50:41)
Неактивен
проще всего написать хранимую процедуру, которая будет это делать
Неактивен
а больше никак?
Неактивен
Можно логику написать в том языке, на котором Вы пишите (скажем PHP).
В принципе из любви к искусству можно через UNION написать, во втором запросе продублировать первый в поздапросе.
SELECT x from Y where Z UNION SELECT k from L where M AND (SELECT count(*) from Y where Z)=0
Неактивен
где я ошибся?
SELECT post_1, post_2 from post where post_2 LIKE '%НАМЦЫ%' AND post_1 LIKE '%000'
UNION
SELECT post_1, post_8 from post where post_8 = 'НАМЦЫ'
AND
(SELECT count(*) from post_1, post_2 from post where post_2 LIKE '%НАМЦЫ%' AND post_1 LIKE '%000')=0
Неактивен
У Вас 2 раза FROM в подзапросе
SELECT post_1, post_2 from post where post_2 LIKE '%НАМЦЫ%' AND post_1 LIKE '%000'
UNION
SELECT post_1, post_8 from post where post_8 = 'НАМЦЫ'
AND
(SELECT count(*) from post where post_2 LIKE '%НАМЦЫ%' AND post_1 LIKE '%000')=0
Изучите пожалуйста синтаксис оператора SELECT, Вы делаете много синтаксических ошибок, из-за которых работа тормозится http://dev.mysql.com/doc/refman/5.0/en/select.html
Неактивен
делаю запрос:
SELECT post_1,post_2 from post where post_2 LIKE '%НАМЦЫ%' AND post_1 LIKE '%000'
UNION
SELECT post_1,post_8 from post where post_8 = 'НАМЦЫ'
AND
(SELECT count (*) from post where post_2 LIKE '%НАМЦЫ%' AND post_1 LIKE '%000')=0
но чо вылазит ошипка. помоему что то не так в последнем (вложенном) селекте
SELECT count (*) from post where post_2 LIKE '%НАМЦЫ%' AND post_1 LIKE '%000'
так как если его выполнять отдельно - ругается так:
1064 - syntax error near '(*) from post where post_2 LIKE '%НАМЦЫ%' ... at line 1
Неактивен
count(*) следует писать без пробела после count
Неактивен
да не. не из-за пробела.
может версия mysql повыше нужна?
Неактивен
Сам подзапрос должен в любой версии работать
Неактивен
да. сам подзапрос пашет. возвращает 0
SELECT count(*) FROM post WHERE post_2 LIKE '%намцы%' AND post_1 LIKE '%000'
а если кверю SELECT count(*) FROM post WHERE post_2 LIKE '%намцы%' AND post_1 LIKE '%000'=0
возвращает 1
а вот такой запрос не выполняется
(SELECT count(*) FROM post WHERE post_2 LIKE '%намцы%' AND post_1 LIKE '%000')=0
так и не понял почему именно в круглых скобках не работает
Неактивен