2018.03.29 15:40 IT/MySQL

mysql order by field

testbl 이라는 테이블이 있다.


mysql> select * from testbl;

+-----+------+------+--------+

| sid | ssid | sort | status |

+-----+------+------+--------+

|   1 | aa   |   23 | e      |

|   2 | aa   |   11 | e      |

|   3 | aa   |   33 | e      |

|   4 | aa   |   32 | e      |

|   5 | bb   |   23 | a      |

|   6 | bb   |   67 | c      |

|   7 | bb   |   34 | a      |

|   8 | bb   |   77 | d      |

|   9 | cc   |   11 | a      |

|  10 | cc   |   22 | a      |

|  11 | cc   |   32 | d      |

|  12 | cc   |   23 | c      |

+-----+------+------+--------+

12 rows in set (0.00 sec)


이 테이블로 몇가지를 해볼 참이다.

일단, 우리가 흔히 쓰는 order by 로 나온 결과를 정렬 할때, 일정한 순서가 아닌 임의로 정한 순서대로 보여주려면 아래와 같이 하면 된다.


mysql> select * from testbl where sid in (3,4,1)  order by field (sid, 3, 4, 1);

+-----+------+------+--------+

| sid | ssid | sort | status |

+-----+------+------+--------+

|   3 | aa   |   33 | e      |

|   4 | aa   |   32 | e      |

|   1 | aa   |   23 | e      |

+-----+------+------+--------+

3 rows in set (0.00 sec)


order by field ( 컬럼명, "순서1", "순서2", .... ) 와 같은 방법으로 원하는 순서를 직접 지정 할 수 있다.


하지만, 이렇게 원하는 순서대로 뽑아내려는 때는 보통... 기존에 있던건 그대로 보여주고 원하는 결과만 위로 보여줘야 할때가 대부분일 것이다.(필자는 그랬다.)

그럴땐 union을 쓰면 된다. 


mysql> (select * from testbl where sid in (3,4,1)  order by field (sid, 3, 4, 1))

union 

(select * from testbl where sid < 9 );

+-----+------+------+--------+

| sid | ssid | sort | status |

+-----+------+------+--------+

|   1 | aa   |   23 | e      |

|   3 | aa   |   33 | e      |

|   4 | aa   |   32 | e      |

|   2 | aa   |   11 | e      |

|   5 | bb   |   23 | a      |

|   6 | bb   |   67 | c      |

|   7 | bb   |   34 | a      |

|   8 | bb   |   77 | d      |

+-----+------+------+--------+

8 rows in set (0.00 sec)


위의 쿼리문에서 union으로 조금 더 뽑아 와봤다. 그런데... 정렬이 엉망이다. 위에서 order by를 썼는데도 먹혀 있지도 않다. 그 이유는 "UNION은 레코드 집합을 순서 없이 만들게 되기 때문에 최종 결과에서 레코드들이 어떻게 나타나야 하는지 순서에 관해 아무것도 암시 하지 않는다." 라는.. 한마디로 union으로 합치면 순서는 멋대로 정해진다 라는 거다.

그래서 이럴때는 뽑아온 대상에 대해서 정렬을 해줘야 한다.


mysql> (select * from testbl where sid in (3,4,1)) 

union 

(select * from testbl where sid < 9 ) 

order by field (sid, 3, 4, 1);

+-----+------+------+--------+

| sid | ssid | sort | status |

+-----+------+------+--------+

|   5 | bb   |   23 | a      |

|   2 | aa   |   11 | e      |

|   8 | bb   |   77 | d      |

|   7 | bb   |   34 | a      |

|   6 | bb   |   67 | c      |

|   3 | aa   |   33 | e      |

|   4 | aa   |   32 | e      |

|   1 | aa   |   23 | e      |

+-----+------+------+--------+

8 rows in set (0.00 sec)


위처럼 해놓으면 3, 4, 1로 정렬 된 것이 보일 것이다. 하지만, 여전히 부족하다. 나머지 순서들이 엉망인데다가, 필자는 3, 4, 1이 맨 위에서 뽑혀지길 원했기 때문이다.

이럴때는 아래와 같이 하면 된다.


mysql> (select * from testbl where sid in (3,4,1)) 

union 

(select * from testbl where sid < 9 ) 

order by field (sid, 1, 4, 3) desc, sid;

+-----+------+------+--------+

| sid | ssid | sort | status |

+-----+------+------+--------+

|   3 | aa   |   33 | e      |

|   4 | aa   |   32 | e      |

|   1 | aa   |   23 | e      |

|   2 | aa   |   11 | e      |

|   5 | bb   |   23 | a      |

|   6 | bb   |   67 | c      |

|   7 | bb   |   34 | a      |

|   8 | bb   |   77 | d      |

+-----+------+------+--------+

8 rows in set (0.00 sec)


유의할점은 desc로 뽑아주기 때문에 기존에 3,4,1로 해놓았던 순서를 1,4,3으로 해놓아야 원하는 결과물을 얻을 수 있다는 거다.


뭐.. 공지사항 같은거 처리할때 꾀 쓸만할꺼 같다..



출처 : http://b1ix.net/93

Posted by 경제/부동산/프로그래머/안드로이드/PHP/mysql/asp 당양부부

white-space는 요소 안에 공백 처리에 대한 속성입니다.

white space란 여백이라고도 하는데 html에서는 공백 같은 것이지요.


< 속성값 >

normal : 기본값으로 공백을 여러개 넣어도 공백 1개만 표시됩니다. 글이 길어지면 텍스트가 자동 줄바꿈(wrap) 됩니다.

 

nowrap : 공백을 여러개 넣어도 1개만 표시, 텍스트가 길어도 줄바꿈 되지 않고 같은 줄에 계속 표시됩니다.


pre : 공백을 코드에 있는 그대로 표시함. <pre>와 같은 기능이지요. 코드에 줄바꿈이 없다면 자동 줄바꿈 되지 않습니다.


pre-wrap : 공백을 코드에 있는 그대로 표시함. 코드에 줄바꿈이 없어도 자동 줄바꿈 됩니다.


pre-line : 공백을 여러개 넣어도 1개만 표시. 코드에 줄바꿈이 없어도 자동 줄바꿈 됩니다.


감사합니다.




'IT > html_css' 카테고리의 다른 글

white-space 속성값.  (0) 2018.03.29
CSS로 한줄 자르기. 말줄임표.  (0) 2018.03.29
vertical-align 안먹을 때  (0) 2018.02.06
우클릭 막기. 드래그 막기.  (0) 2018.01.30
java json 크로스 도메인(Crossdomain) 우회하기.  (0) 2016.12.26
HTML5 Input Type: Number  (0) 2015.10.21
Posted by 경제/부동산/프로그래머/안드로이드/PHP/mysql/asp 당양부부

CSS로 한줄이 넘어가는 문자를 한줄로 줄일 수 있다.


한줄 뿐만 아니라 여러 줄로 설정도 가능하다.


1. 한줄로 내용 자르기.


  간단한 방법으로 overflow: hidden; 을 통해 한줄이 넘어가는 문자를 숨길 수 있다.

  뒤에 말줄임표를 추가하기 위해서는 text-overflow: ellipsis; 를 넣어주면 된다.



2. N줄로 내용 자르기.


text-align: left : 글자 정렬이 양쪽 정렬이면 말 줄임표가 숨겨질 수 있으니 좌측 정렬로 하여야 함.

word-wrap: break-word : 잘라버릴 글자를 단어 단위로 잘라줌.

display: -webkit-box : 여백 삽입과 같이 유연한 높이 증가를 위해 플렉스 박스형태로 변환.

-webkit-line-clamp: 3 : 보여줄 줄 수.

-webkit-box-orient: vertical : 플렉스 박스의 방향 설정.


저는 개발자이지만 유용한 정보라 포스팅 하였습니다.


감사합니다.





'IT > html_css' 카테고리의 다른 글

white-space 속성값.  (0) 2018.03.29
CSS로 한줄 자르기. 말줄임표.  (0) 2018.03.29
vertical-align 안먹을 때  (0) 2018.02.06
우클릭 막기. 드래그 막기.  (0) 2018.01.30
java json 크로스 도메인(Crossdomain) 우회하기.  (0) 2016.12.26
HTML5 Input Type: Number  (0) 2015.10.21
Posted by 경제/부동산/프로그래머/안드로이드/PHP/mysql/asp 당양부부

힘들죠? 층간소음이란 것이..

 

정당하지 못하다고 느낄 때도 많고..

 

이에 층간소음의 규정에 대해 알아볼께요..

 

서로서로 배려하면 좋은사회 될텐데.. 흐음..

 

 

층간소음에 대해서는 가해자도 피해자도 되지 맙시다.

 

출처 : 닥터부동산 www.drapt.com

Posted by 경제/부동산/프로그래머/안드로이드/PHP/mysql/asp 당양부부

부동산 전자계약시스템 절차입니다.



출처 : 닥터부동산

Posted by 경제/부동산/프로그래머/안드로이드/PHP/mysql/asp 당양부부

오늘은 무주택자 기준, 즉 주택소유 판단 기준을 알아봅시다.

 

쉬운 듯 하면서도 확인할 필요가 있겠지요?

 

 

감사합니다.

 

출처 : 닥터부동산

'경제 > 부동산' 카테고리의 다른 글

층간 소음 규정  (0) 2018.03.26
부동산 전자계약시스템 절차.  (0) 2018.03.19
무주택자 기준, 주택소유 판단 기준.  (0) 2018.03.12
아파트 전용면적 차이. 안목치수.  (0) 2018.02.19
2018년 3월 아파트 특별 공급.  (0) 2018.01.29
바닥재의 종류  (0) 2018.01.15
Posted by 경제/부동산/프로그래머/안드로이드/PHP/mysql/asp 당양부부

하하.. 신기한 손가락 유연성입니다.

 

흡사 마술같기도 하네요.

 

 

 

 

 

좋아요 눌러주시면 감사하지요. ^^

Posted by 경제/부동산/프로그래머/안드로이드/PHP/mysql/asp 당양부부
이전버튼 1 이전버튼

블로그 이미지
경제를 좋아하는 일산의 행복한 프로그래머입니다. 감사합니다.
당양부부
Yesterday67
Today3
Total110,534

달력

 « |  » 2018.03
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

최근에 달린 댓글

최근에 받은 트랙백

글 보관함