我正在使用这样的数据库设置:
entity field value
1 start_date June 1, 2010
1 end_date August 30, 2010
1 artist some name
我想查询已经开始但未结束的艺术家名称“某个名称”的所有实体。
我想出了这样的事情:
SELECT start.entity
FROM field_values AS `start`
INNER JOIN field_values AS `end`
INNER JOIN field_values AS `artist`
WHERE
(start.field = 'start_date' AND end.field = 'end_date' AND artist.field='artist') AND
(STR_TO_DATE(start.value, '%M %d, %Y') < NOW() AND
STR_TO_DATE(end.value, '%M %d, %Y') > NOW()) AND
artist.value="some artist";
但这并没有让我觉得非常有效。有更好的方法吗?