J'ai enregistré les détails du produit au format JSON.
[
Par exemple I want to select TV with screen_type as LED or LCD.
Et la valeur est enregistrée comme
{"screen_size":"22 - 24", "screen_type":"LED", "smart_tv":"no", "3d":"no", "resolution":"HD Ready", "hdmi":"1", "usb":"1"}
Il est possible de faire avec UNION
question comme:
SELECT * FROM `nw_object_detail` WHERE `details` LIKE '%"screen_type":"LED"%'
UNION
SELECT * FROM `nw_object_detail` WHERE `details` LIKE '%"screen_type":"LCD"%'
Mais la requête sera trop longue s'il ya beaucoup de choix. Y a-t-il une solution de manière plus simple.
J'ai eu une solution:
Vérification unique de la valeur dans le tableau JSON
SELECT * FROM `nw_object_detail`
WHERE ((`details` like '%"screen_type":"%LED%"%'))
Une valeur de plusieurs possibilités
SELECT * FROM `nw_object_detail`
WHERE ((`details` like '%"screen_type":[%"%LCD%"%]%')
Solution php
if(count($options)>1):
$condition = '(';
$count = 1;
foreach( $options as $option ):
$condition .= '(`details` like \'%"'.$key.'":[%"%'.$option.'%"%]%\')';
if(count($options)!=$count):
$condition .= ' OR ';
endif;
endforeach;
$condition .= ')';