/ / Výskyt dopytov MySQL v poli - mysql, sql

MySQL Query Ocurrences v poli - mysql, sql

V tabuľke mám pole s názvom fakturačné poznámkynazýva sa b_orders. V tomto poli sa slová „Odmietnutá kreditná karta“ zobrazia niekoľkokrát v závislosti od toho, koľkokrát bola karta zamietnutá. Snažím sa napísať dotaz, aby som vybral iba záznamy, v ktorých sa fráza „Kreditná karta odmietnutá“ objaví menej ako štyrikrát?

Niečo také: SELECT * FROM b_orders, kde faktúra_notes má "Credit Card Declined" <4 "

Akákoľvek pomoc sa oceňuje. Vďaka

odpovede:

1 pre odpoveď č. 1

Znie to ako odpoveď: http://pisceansheart.wordpress.com/2008/04/15/count-occurrence-of-character-in-a-string-using-mysql/
Citácia:

1. Counting the number of characters in the original string
2. Temporarily ‘deleting’ the character you want to count and count the string again
3. Subtract the first count from the second to get the number of occurrences

SELECT LENGTH("foobarfoobarfoobar") - LENGTH(REPLACE("foobarfoobarfoobar", "b", "")) AS occurrences

Pre konkrétny príklad:

SELECT * FROM b_orders where (length(invoice_notes) - length(replace(invoice_notes, "Credit Card Declined"))) < (length("Credit Card Declined") * 4)

0 pre odpoveď č. 2

Ako asi niečo ako:

SELECT * FROM b_orders
WHERE invoice_notes LIKE "%Credit Card Declined%"
AND invoice_notes NOT LIKE "%Credit Card Declined%Credit Card Declined%Credit Card Declined%Credit Card Declined%"

0 pre odpoveď č. 3
SELECT * FROM b_orders WHERE invoice_notes LIKE "%Credit Card Declined%"
AND invoice_notes NOT LIKE REPEAT("%Credit Card Declined%",4);