Autor | Zpráva | ||
---|---|---|---|
logic Profil * |
#1 · Zasláno: 3. 2. 2014, 22:15:11 · Upravil/a: logic
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 |
#2 · Zasláno: 3. 2. 2014, 22:19:36
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 * |
#3 · Zasláno: 3. 2. 2014, 22:39:15
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 |
#4 · Zasláno: 3. 2. 2014, 22:43:44
Koukni se do komentářů na dev.mysql.com/doc/refman/5.1/en/counting-rows.html
|
||
logic Profil * |
#5 · Zasláno: 3. 2. 2014, 22:47:33 · Upravil/a: logic
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 |
||
Časová prodleva: 11 let
|
0