1

誕生日が指定された日付と等しいユーザーレコードを取得する必要があります。の日付形式はbirthdayデータベース"Y-d-m"にあるため、最初に形式に変換する必要があり"d-m"ます。その後、このフィールドを選択します。次のようなクエリを使用します。

SELECT *, DATE_FORMAT(birthday, '%d-%m') AS birthday_date
FROM users
WHERE birthday_date = '03-06'

しかし、不明な列エラーが返されます:

Unknown column 'birthday_date' in 'where clause'

では、どうすればこの問題を解決できますか?

前もって感謝します。

4

2 に答える 2

3

あなたは持っていることを使用する必要があります:)

SELECT *, DATE_FORMAT(birthday, '%d-%m') AS birthday_date
FROM users
HAVING DATE_FORMAT(birthday, '%d-%m') = '03-06'

また

SELECT * FROM(
    SELECT *, DATE_FORMAT(birthday, '%d-%m') AS birthday_date
    FROM users
) a
WHERE a.birthday_date = '03-06'
于 2012-06-03T13:34:46.537 に答える
1

次のことを試してください。

SELECT * FROM
(
  SELECT *, DATE_FORMAT(birthday, '%d-%m') AS birthday_date
  FROM users
)
WHERE birthday_date = '03-06'

where句でエイリアスを使用することはできません

于 2012-06-03T13:36:27.450 に答える