mysql větvení

HackForum

mysql větvení#
ahoj, prosím vás, nevíte proč to nefunguje?

adminer vypisuje
"Chyba v dotazu: Syntax error near 'zalozky.time,zalozky.strana,zalozky.id_cla
nku,zalozky.id [WHEN 'clanek' THEN ' at line 3"


SELECT
CASE zalozky.strana
WHEN 'kniha' THEN books.title,zalozky.time,zalozky.strana,zal
ozky.id_clanku,zalozky.id
[WHEN 'clanek' THEN article.title,zalozky.time,zalozky.strana,z
alozky.id_clanku,zalozky.id]
ELSE user.nick,zalozky.time,zalozky.strana,zaloz
ky.id_clanku,zalozky.id
END
FROM zalozky
LEFT JOIN article ON zalozky.id_clanku = article.id
LEFT JOIN books ON zalozky.id_clanku = books.id
WHERE zalozky.zobrazit = '1' && zalozky.iduser = '1'
ORDER BY zalozky.time DESC


díky. :)

----------
[link]

[link]

Někdy kokot kokotem není, někdy je to prostě jenom pták.
(odpovědět)
qteck | E-mail | Website | ICQ 3642508694.5.2011 10:42
re: mysql větvení#
sorry, už jsem to vyřešil. jsem tam měl místo then - than.... :-D

tady ještě posílám ten funkční kus, kdyby někdo měl lepší řešení, budu rád když se podělíte.


SELECT
(CASE
WHEN zalozky.strana = "kniha"
THEN books.title
WHEN zalozky.strana = "clanek"
THEN article.title
ELSE users.nick
END)
AS title,
zalozky.time,zalozky.strana,zalozky.id_clan
ku,zalozky.id
FROM zalozky
LEFT JOIN article ON zalozky.id_clanku = article.id
LEFT JOIN books ON zalozky.id_clanku = books.id
LEFT JOIN users ON zalozky.id_clanku = users.id
WHERE zalozky.zobrazit = '1' && zalozky.iduser = '1'
ORDER BY zalozky.time DESC


----------
[link]

[link]

Někdy kokot kokotem není, někdy je to prostě jenom pták.
(odpovědět)
qteck | E-mail | Website | ICQ 3642508694.5.2011 12:14
re: mysql větvení#
ale přece jen by jste mi mohli pomoci. potřeboval bych pouze pomocí mysql, ověřit existenci záznamu a pokud existuje, tak vložit, pokud né = false.

potřebuju přidat do tabulky záložky nový řádek. předtím ale musím ověřit existenci idu na který v té záložce budu odkazovat. Přičemž id, který budu ověřovat je v rozdílné tabulce než záložky. Důležité je aby se to vešlo pouze do jednoho query.



----------
[link]

[link]

Někdy kokot kokotem není, někdy je to prostě jenom pták.
(odpovědět)
qteck | E-mail | Website | ICQ 3642508694.5.2011 13:43
re: mysql větvení#
teď mě napadá že by to mohlo jít insert ..selectu

----------
[link]

[link]

Někdy kokot kokotem není, někdy je to prostě jenom pták.
(odpovědět)
qteck | E-mail | Website | ICQ 3642508694.5.2011 13:46
re: mysql větvení#
tak tohle by stačilo, ale potřeboval bych aby to hodilo false, když id neexistuje. protože ten příkaz se provede i přesto, že zadám neexistující id.

INSERT INTO zalozky (id) SELECT id FROM books WHERE id = '478881'



----------
[link]

[link]

Někdy kokot kokotem není, někdy je to prostě jenom pták.
(odpovědět)
qteck | E-mail | Website | ICQ 3642508694.5.2011 14:17
re: mysql větvení#

INSERT INTO zalozky (user,strana,time,idclanku,duplicita)
SELECT '{$_SESSION["log"]}' AS user, \"{$_GET["strana"]}\" AS strana, now() AS time ,id AS idclanku, \"{$duplicita}\" AS duplicita
FROM ".$tab." WHERE id = '{$id}'
ON DUPLICATE KEY UPDATE time = now()


a tekhle vypadá funkční verze. mír s vámi.

----------
[link]

[link]

Někdy kokot kokotem není, někdy je to prostě jenom pták.
(odpovědět)
qteck | E-mail | Website | ICQ 3642508695.5.2011 21:15

Zpět
Svou ideální brigádu na léto najdete na webu Ideální brigáda
 
 
 

 
BBCode