2009-11-13 7 views
1

알아두면 멋진 SQL 약자는 무엇입니까? 예를 들어SQL 쿼리 바로 가기

는, 오늘 배운 것을 사용하여 인덱스에 의해 그룹에 지정할 수 있습니다 :

SELECT col1, col2 FROM table GROUP BY 2 

COL2

+1

이와 같은 질문은 커뮤니티 위키가되어야합니다. –

+0

모든 SQL 구현이 그룹별로 서수를 지원한다고 생각하지 않습니다. –

+0

지름길이 아닙니다. 위험합니다. 그리고 적어도 – gbn

답변

2

서수의이 의지 그룹 -의 장소에 대한 참조입니다 번호를 사용 SELECT 절 - GROUP BY 및 ORDER BY 절에서 사용할 수 있습니다. 그러나 주문이 변경되면 검색어에 영향을 미치기 때문에 추천하지 않습니다.

표 별칭은 필수 항목입니다. IE :

SELECT 
    FROM THIS_IS_MY_UNGODLY_TABLE_NAME timutn 

는 ... 내가 원하는 경우 전체 테이블의 이름을 입력보다/열에서 오는 어떤 테이블 명확하게 할 필요가 오히려 timutn를 사용할 수 있다는 것을 의미합니다. 언제나 전체 테이블 이름을 실제로 입력하려고 할 때 필수적입니다.

실제로 테이블 별칭을 사용하게 된 이유는 테이블 별칭을 사용하는 경우 일부 SQL IDE가 해당 테이블의 열 목록 만 제공 할 정도로 현명한 인텔리 전스를 가졌기 때문입니다.

+0

+1 SQL Server에 의해 지원되지 않습니다, 나는 항상 별칭을 사용합니다. –

+0

SQL Server에서 GROUP BY가 아닙니다. – gbn

2

당신의 조건 경우 실제로 쿼리를 실행할 때 쿼리를 알 수 없으므로 이 유용합니다.

예 :

$query = 'SELECT * FROM table '; 

<?php if ($something) { ?> 
$sql.= 'WHERE something = ' . $variable; 
<?php } else { ?> 
$sql.= 'WHERE something = ' . $another; 
<?php } ?> 

많은 분기가 진행되는 경우 그러한 고통이 될 수 있습니다. (물론 쿼리 문자열을 만드는 것도 믿지 않지만,이 예제를 위해서입니다).

쉬운 방법 : 물론

$query = 'SELECT * FROM table WHERE 1=1 '; 

<?php if ($something) { ?> 
$sql.= 'AND something = ' . $variable; 
<?php } else { ?> 
$sql.= 'AND something = ' . $another; 
<?php } ?> 

나는 아마 내가 조건을 지정할 수있는 where 방법이있는 래퍼/클래스를 사용합니다.

+0

왜 이것을 사용하고 그것이 어떤 이점을 주는지 설명 할 수 있습니까? – gbn

+0

아. 알 겠어. 따라서 클라이언트 코드에서 SQL 문을보다 쉽게 ​​구축 할 수 있습니다. 자신을 SQL 삽입에 맡기지 않기를 바랍니다. ;-) – gbn

+0

+1 : PHP에서는 implode 함수를 사용하여 where 문을 작성한 다음 구분자를 논리 연산자로 사용 예 : $ q = "select * from mytable where".implode ('and', $ _ where); 분명히 $ _where는 배열이어야하며 where 절을 추가하기 전에 sizeof()를 확인하여 창의적 일 수 있습니다. :) –