Where kullanırken karakter seçerek göstermek
Merhaba arkadaşlar aşağıda ki gibi bir sorgum var. Veritabanında p.image kısmında kayıtlı veriler var. Bu verilerin son 3 karakterinde JPG yazmıyor. Sorgu yaparken bunları ayıklayabilirmiyim göstermek istemiyorum.
$products = $this->db->query("SELECT ptc.product_id,p.sort_order FROM " . DB_PREFIX . "product_to_category ptc INNER JOIN " . DB_PREFIX . "product p ON p.product_id=ptc.product_id WHERE ptc.category_id='$category_id' AND LENGTH(p.image)>2 AND p.status=1 AND p.quantity>0 ORDER BY p.sort_order")->rows;
Sorunuzun benzeri stackoverflow.com'da sorulmuş.
Cevaben şöyle yazılmış:
Dokümantasyonda doğrudan bununla ilgili bir örnek var:
SELECT * FROM table WHERE SUBSTRING(field, -4) = '.png'
Burada son 4 hanesi ".png" olanları seçmiş. Siz "JPG" olmayanları seçmek istiyorsunuz:
SELECT
ptc.product_id,
p.sort_order
FROM
my_product_to_category ptc
INNER JOIN
my_product p ON p.product_id=ptc.product_id
WHERE
ptc.category_id=20
AND LENGTH(p.image)>2
AND p.status=1
AND p.quantity>0
AND SUBSTRING(p.image, -3) <> 'JPG'
ORDER BY
p.sort_order