日名が除外値'excl_days'に設定されている一部のレコードをクエリから除外する必要があります。
単純な関数が機能しています:
SELECT post_id, start, end, excl_days FROM `mytable_events`
WHERE `excl_days` NOT LIKE '%".$today_name."%'
ORDER BY DATE(start) DESC
しかし、JOINとGROUPを使用すると、NOT LIKEを追加した後、結果が空になります。NOT LIKEがなければ、すべてが正常に機能しています。
SELECT o1.post_id, o1.start, o1.end, o1.excl_days
FROM `mytable_events` o1
JOIN `mytable_posts` o2 ON o1.post_id = o2.ID
WHERE `o1.excl_days` NOT LIKE '%".$today_name."%'
GROUP BY o1.post_id ORDER BY DATE(o1.start) DESC
完全なクエリは次のとおりです。
SELECT o1.post_id, o1.start, o1.end, o1.excl_days
FROM `mytable_events` o1
JOIN `mytable_posts` o2 ON o1.post_id = o2.ID
WHERE DATE(o1.start) <= '".$today."' AND DATE(o1.end) >= '".$today."'
AND o2.post_type = 'events' AND o2.post_status = 'publish'
AND `o1.excl_days` NOT LIKE '%".$today_name."%'
GROUP BY o1.post_id ORDER BY DATE(o1.start) DESC
これをどのように機能させるのですか?助けてくれてありがとう。