日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql as_mysql AS子句

發(fā)布時間:2024/10/8 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql as_mysql AS子句 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我寫了一個查詢,并從出生日期開始,我計算出一個人的年齡,然后使用AS年齡創(chuàng)建一個年齡字段.

我的問題是,是否有可能再次匹配那個年齡段?

像這樣的東西,

SELECT `candidates`.`candidate_id`,

`candidates`.`first_name`,

`candidates`.`surname`,

`candidates`.`DOB`,

`candidates`.`gender`,

DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(`candidates`.`DOB`, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(`candidates`.`DOB`, '00-%m-%d')) AS `age`

FROM `candidates`

WHERE `age` <= 20

任何幫助將不勝感激?

—–所以我把WHERE更改為HAVING,這是我的完整查詢——

SELECT `candidates`.`candidate_id`,

`candidates`.`first_name`,

`candidates`.`surname`,

`candidates`.`DOB`,

`candidates`.`gender`,

`candidates`.`talent`,

`candidates`.`location`,

`candidates`.`availability`,

`candidate_assets`.`url`,

`candidate_assets`.`asset_size`

FROM `candidates`

LEFT JOIN `candidate_assets` ON `candidate_assets`.`candidates_candidate_id` = `C`.`candidate_id`

WHERE `C`.`availability` = 'yes'

AND C.talent = "actor"

AND C.skill = "accents"

AND C.gender = "male"

AND HAVING DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(`candidates`.`DOB`, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(`candidates`.`DOB`, '00-%m-%d')) <= 69

AND HAVING DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(`candidates`.`DOB`, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(`candidates`.`DOB`, '00-%m-%d')) <=19

AND HAVING DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(`candidates`.`DOB`, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(`candidates`.`DOB`, '00-%m-%d')) <=49

我收到以下錯誤,

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘HAVING DATE_FORMAT(NOW(), ‘%Y’) – DATE_FORMAT(candidates.DOB, ‘%Y’) – (DATE_’ at line 15

對于我的生活,我不知道它是什么.

解決方法:

一種方法是將原始查詢包裝為子查詢,并將WHERE子句移動到外部查詢:

SELECT * FROM (

SELECT `candidates`.`candidate_id`, -- this is the original query

`candidates`.`first_name`,

`candidates`.`surname`,

`candidates`.`DOB`,

`candidates`.`gender`,

DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(`candidates`.`DOB`, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(`candidates`.`DOB`, '00-%m-%d')) AS `age`

FROM `candidates` ) as innertable

WHERE `age` <= 20 -- this is now part of the outer query

澄清:這可以在MySQL 5中運行

注意:這假設原始查詢有效

標簽:mysql,sql

來源: https://codeday.me/bug/20190530/1185794.html

總結

以上是生活随笔為你收集整理的mysql as_mysql AS子句的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。