0

mysqlテーブルには、予約語「from」で名前が付けられた列があるため、このようなバックチップでリクエストを試みました

SELECT * FROM timesheets  WHERE user_id = 1 WHERE `from` <= 2013-10-31 WHERE `from` > 2013-01-01

しかし、それは動作しません、エラーがあります:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; 

手伝って頂けますか ?

4

2 に答える 2

1
  • SQL ステートメントには 3 つのWHERE句があります。

    WHERE user_id = 1 WHERE `from` <= 2013-10-31 WHERE `from` > 2013-01-01
    
  • あなたはあなたの日付を引用しませんでした。

これらの点により、SQL クエリが無効になります。

→余分なWHERE句をANDsで置き換えます:

WHERE user_id = 1 AND (`from` <= '2013-10-31' AND `from` > '2013-01-01')

BETWEEN ... AND ...→日付にも使用できます:

WHERE user_id = 1 AND (`from` BETWEEN '2013-01-01' AND '2013-10-31')

かっこは必要ありませんが、読みやすくするために追加することをお勧めします。

于 2013-10-24T15:09:37.593 に答える
0

クエリが無効な SQL です。クエリに含めることができる WHERE 句は 1 つだけで、3 つまでですfrom

あなたは次のようなものを探しているかもしれません:

select *
from timesheets
where user_id = 1
AND `from` BETWEEN  '2013 - 01 - 01' AND '2013 - 10 - 31';
于 2013-10-24T15:09:12.803 に答える