데이터 베이스 MySQL 튜토리얼 MYSQL联合查询中GROUP_CONCAT、MAX、year使用_MySQL

MYSQL联合查询中GROUP_CONCAT、MAX、year使用_MySQL

Jun 01, 2016 pm 01:46 PM
질문 재료

bitsCN.com

 

这个是昨天遇到的事了,是写简历搜索器的时候遇到的,查阅了很多的资料,这里记录一下一些SELECT联合查询中遇到的一些问题并附带解决办法

首先上例子:

$sql=""; 

$sql.=" SELECT "; 

$sql.=" ".T_."person_info.personid, "; 

$sql.=" ".T_."person_info.personname, "; 

$sql.=" ".T_."person_info.sex, "; 

$sql.=" year(".T_."person_info.birthday) AS age, "; 

$sql.=" MAX(".T_."person_edu.education) AS xueli, "; 

$sql.=" ".T_."person_edu.school, "; 

$sql.=" GROUP_CONCAT(".T_."person_edu.`subject`), "; 

$sql.=" ".T_."person_info.shi1 "; 

$sql.=" FROM "; 

$sql.=" ".T_."person_info "; 

$sql.=" LEFT JOIN ".T_."person_edu ON ".T_."person_info.personid = ".T_."person_edu.personid "; 

$sql.=" WHERE 1=1 "; 

$sql.=" AND ".T_."person_info.personid = '".$autoid."' "; 

$sql.=" GROUP BY personid ";

 

GROUP_CONCAT()是MySQL数据库提供的一个函数,通常跟GROUP BY一起用,将所有同personid的subject结果组成结果集,并用逗号分隔开,只支持字符类型的字段,整数型须要特殊写法,因为没有研究,所以这里不说了

MAX是在整数型中取最大值,这里用于取最高学历(学历字典),GROUP BY一起用

year还有month,都是从时间类型中提取一部分,比如年份、月份,我这里是从生日中提取年份好计算年龄(所谓一年又一年,年龄还是计算来的精确)

另外说一下GROUP BY,就是分组的意思,就是重复记录只显示一条,比如说某个人的学历信息,在数据库里面可能很多条,但是显示在前台的组合搜索结果中,那我就须要合并结果并且只取最高的一条就OK了

本文出自 “金色猪子的PHP成长之路” 博客

bitsCN.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Xuexin.com에서 학업 자격을 확인하는 방법 Xuexin.com에서 학업 자격을 확인하는 방법 Mar 28, 2024 pm 04:31 PM

Xuexin.com에서 학업 자격을 확인하는 방법

12306 항공권 구매 내역 확인 방법 항공권 구매 내역 확인 방법 12306 항공권 구매 내역 확인 방법 항공권 구매 내역 확인 방법 Mar 28, 2024 pm 03:11 PM

12306 항공권 구매 내역 확인 방법 항공권 구매 내역 확인 방법

Apple 휴대폰의 활성화 날짜를 확인하는 방법 Apple 휴대폰의 활성화 날짜를 확인하는 방법 Mar 08, 2024 pm 04:07 PM

Apple 휴대폰의 활성화 날짜를 확인하는 방법

Oracle을 사용하여 테이블이 잠겨 있는지 쿼리하는 방법은 무엇입니까? Oracle을 사용하여 테이블이 잠겨 있는지 쿼리하는 방법은 무엇입니까? Mar 06, 2024 am 11:54 AM

Oracle을 사용하여 테이블이 잠겨 있는지 쿼리하는 방법은 무엇입니까?

MySQL과 PL/SQL의 유사점과 차이점 비교 MySQL과 PL/SQL의 유사점과 차이점 비교 Mar 16, 2024 am 11:15 AM

MySQL과 PL/SQL의 유사점과 차이점 비교

Tongshen Coin의 최신 가격을 확인하는 방법은 무엇입니까? Tongshen Coin의 최신 가격을 확인하는 방법은 무엇입니까? Mar 21, 2024 pm 02:46 PM

Tongshen Coin의 최신 가격을 확인하는 방법은 무엇입니까?

Discuz 데이터베이스 위치 쿼리 기술 공유 Discuz 데이터베이스 위치 쿼리 기술 공유 Mar 10, 2024 pm 01:36 PM

Discuz 데이터베이스 위치 쿼리 기술 공유

INJ 코인의 최신 가격을 확인하는 방법은 무엇입니까? INJ 코인의 최신 가격을 확인하는 방법은 무엇입니까? Mar 06, 2024 pm 05:00 PM

INJ 코인의 최신 가격을 확인하는 방법은 무엇입니까?

See all articles