Witam,
mam tabelę w MySQL z polem (opis pola to "json encoded data") o nazwie PARAMS, w którym mam takie wartości: {"time":"0","catid":"2","orderby":"0","secure":0}. Przykładowo catid pobieram poprzez $this->catid = $params->get('catid'); i to działa dobrze. Natomiast chciałbym skonstruować zapytanie mniej więcej takiej treści:
  1. $query->select('id AS idm')->from('menu')->where( "(link = 'index.php?option=com_component&view=list') AND (language = 'PL')" );

i dotąd działa, ale chciałbym dodać sprawdzenie właśnie jednej wartości z pola PARAMS np. catid. Jak to zrobić? Próbowałem w zapytaniu dodać:
AND (" .$this->catid == "2" - z cudzysłowiem lub bez - ale wtedy nie działa. Możecie mi podpowiedzieć, jak to poprawnie ułożyć? Podejrzewam, że źle sprawdzam element pola PARAMS, właśnie catid.

Jacek

Poradziłem sobie stosując LIKE, zapytanie wygląda mniej więcej tak:
  1. SELECT * FROM `menu` WHERE `link` = "index.php?option=com_component" AND `params` LIKE '%"catid":"1"%';

Rekordów nie ma dużo (ok 100), mam nadzieję że to dobre rozwiązanie. W każdym bądź razie działa. Oczywiście w LIKE zamiast wartości 1 dam zmienną, tylko tutaj sprawdzałem w PMA czy zadziała ze sztywną wartością.
Pozdrawiam