0

で乗算値を返すようにクエリを変更したいのですがextra_fields、正規表現を変更するにはどうすればよいですか? また、何が何であるかわかりませんextra_fields-それはフィールドですか?もしそうなら、なぜテーブルプレフィックスで呼び出されないのi.extra_fieldsですか?

SELECT i.*,
    CASE WHEN i.modified = 0 THEN i.created ELSE i.modified END AS lastChanged,
    c.name AS categoryname,
    c.id AS categoryid,
    c.alias AS categoryalias,
    c.params AS categoryparams
FROM #__k2_items AS i
LEFT JOIN #__k2_categories AS c ON c.id = i.catid
WHERE i.published = 1
    AND i.access IN(1,1)
    AND i.trash = 0
    AND c.published = 1
    AND c.access IN(1,1)
    AND c.trash = 0
    AND (i.publish_up = '0000-00-00 00:00:00'
        OR i.publish_up <= '2013-06-12 22:45:19'
    )
    AND (i.publish_down = '0000-00-00 00:00:00'
        OR i.publish_down >= '2013-06-12 22:45:19'
    )
    AND extra_fields REGEXP BINARY '(.*{"id":"2","value":\["[^\"]*1[^\"]*","[^\"]*2[^\"]*","[^\"]*3[^\"]*"\]}.*)'
ORDER BY i.id DESC
4

3 に答える 3

0

わかりました、私はデータベース構造を変更したくありませんでした。私はいくつかの助けを借りて、正規表現をに変更しAND extra_fields REGEXP BINARY '(.*{"id":"2","value":\[("[^\"]*[123][^\"]*",?)+\]}.*)' 、正しい結果を得ました ありがとう

于 2013-06-14T08:58:00.903 に答える