0

クライアント側でいくつかのテーブルから検索フィールドを作成するために使用するこのクエリがあります。

update xcart.xcart_products_lng_en
left join xcart.xcart_products on xcart.xcart_products.productid = xcart.xcart_products_lng_en.productid
left join xcart.xcart_extra_field_values on xcart.xcart_extra_field_values.productid = xcart.xcart_products.productid 

 set xcart.xcart_products_lng_en.keywords =  CONCAT(product , " ", productcode, " ",
        (select group_concat(xcart.xcart_extra_field_values.value 
        order by `xcart`.`xcart_extra_field_values`.`productid` 
        separator " ") 
    from xcart.xcart_extra_field_values 
    where xcart.xcart_extra_field_values.productid = xcart.xcart_products_lng_en.productid )) 
where value is not null or value not like ''

これは期待どおりに機能しますが、値が多すぎると緩すぎるので、追加しました

    fieldid != 11 or fieldid != 10 or fieldid != 12 or fieldid != 18 or fieldid != 19 or
fieldid != 20
    or fieldid != 15 or fieldid != 3 or fieldid != 16 

しかし、これは無視されます。私が露骨に逃したものはありますか?

4

1 に答える 1

2

を使用する必要がありますand

where value is not null or value not like ''

値はいずれか一方の側を通過するため、これは何も除外しませんor。値はのようでnullはないため右側を通過し、null ではないため左側を通過します。''''

于 2013-03-20T18:07:52.173 に答える