miojamo
9.08.2010, 12:43:52
Witam,
Jak sprawdzic czy kolumna jest polem serializowanym? Musze wykonac zapytanie:
SELECT count(id) FROM #__cd_ads WHERE $d_name = $catid AND published = 1
Problem polega na tym ze niektore kolumny to dane serialized
Próbowalme z LIKE ale wtedy moze sie powtorzyc.
Luneth
9.08.2010, 12:59:36
GROUP BY lub DISTINCT, wtedy Ci się nie powtarzają. Ale poza tym opisz może dokładnie tą tabelę, pola i jakie ich typy i czemu ma to w ogóle służyć, co chcesz osiągnąć
miojamo
9.08.2010, 13:14:40
group by ani distinct chyba nie pomoze
w jednej tabeli mam mam klumny ktore musze zliczyc
i tak moze byc wartosc dla kolumny 12
ale dla kolejne moze byc serialized a:3:{i:0;s:2:"21";i:1;s:2:"22";i:2;s:1:"0";}
i tu jest problem mozna uzyc 2 zapytan z like i bez jesli sprawdzic z kolumna jest serialized.
Luneth
9.08.2010, 13:24:35
Nie rozumiem Cię. Masz tabelę. W niej kolumnę gdzie mogą być przechowywane dane zserializowane lub integer i masz zliczyć ilość wierszy, w których są dane zserializowane, czy tak?
miojamo
9.08.2010, 13:57:45
Wszystkie wiersze niezaleznie czy sa zserializowane czy tez nie ale warunek ze jesli w serilizowanych rowniez zawiera się szukany int.
Luneth
9.08.2010, 14:13:57
No to WHERE `nazwa_kolumny` LIKE %szukanyInt% - taki warunek nie starczy? Jeśli ma być razem z nazwą konkretnej zmiennej w zapisie serializowanym no to wtedy:
WHERE `nazwa_kolumny` = 'szukany_int' OR `nazwa_kolumny` LIKE %fragment_serialized_z_szukanym_intem%
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.