Autor Zpráva
logic
Profil *
Chtěl bych udělat nějaký jednoduchý filtr na zprávy, abych mohl vybrat zprávy, které obsahují nějaký text, ale než to udělám, tak bych rád spočítal kolik těch zpráv je. Např. Zprávy obsahují text: "Vaše zpráva byla přečtena". Když tedy najde daný text, vymaže všechny zprávy.


Oprava: chtěl jsem napsat - když najde více než 10 takových zpráv .... tak zobrazím nabídku, jestli je chci vymazat.
Alphard
Profil
Počet zjistíte pomocí count(*) a zbytek je normální podmínka ve where, tady by mohlo stačit nějaké where obsah like '%xyz%'.
logic
Profil *
Alphard:
Takže ten count() neumí ten výsledek, blíže analyzovat? Pro lepší představu, uvedu jiný příklad než zprávy. Když bych měl nějaké statistiky, vyberu 20 řádků, a chci si spočítat něco jako
SELECT count(*) as total, count(rate>30) as good_rates, count(rate<31 AND rate>0)  as normal_rates, count(rate<0) as bad_rates FROM mytable WHERE ....

čili nemohu získat vícero výsledků v jednom dotazu?
Keeehi
Profil
Koukni se do komentářů na dev.mysql.com/doc/refman/5.1/en/counting-rows.html
logic
Profil *
Keeehi:
Myslíš asi toto, viď?
SELECT owner, COUNT(*) AS total_pets, COUNT(IF(dead = '0', 1, NULL)) AS alive_pets, COUNT(IF(dead = '1', 1, NULL)) AS dead_pets FROM pet GROUP BY owner;



Keeehi:
Hele, tak asi sem na to přišel. Myslel jsem něco takového:

SELECT count(id) as id, count(IF(message like '%Vaše zpráva%' , 1, NULL)) AS confirmation FROM messages WHERE ...

a zdá se že to funguje, takže díky

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: