2016-06-06 5 views
0

나는 auth_id 값을 증가시킬 업데이트를 작성하려고한다. 그러나 값이 없으면 1로 설정하고 싶습니다. 선택 항목에 0 값을 지정하지 않아도됩니다.mysql으로 빈 세트를 증가시킬 수 없다

mysql> describe sequences; 
+---------+--------------------------+------+-----+---------+-------+ 
| Field | Type      | Null | Key | Default | Extra | 
+---------+--------------------------+------+-----+---------+-------+ 
| auth_id | int(5) unsigned zerofill | NO |  | 00000 |  | 
+---------+--------------------------+------+-----+---------+-------+ 

나는 이것이 효과가 있다고 생각했다.

mysql> select ifnull(auth_id,0) from sequences; 
Empty set (0.00 sec) 

또는이 ...

mysql> select coalesce(auth_id, 0) from sequences; 
Empty set (0.00 sec) 

나는 무엇을 놓치고?

+1

초기 값을 삽입해야합니다. –

+1

ifnull()이 아무 것도없이 레코드를 만들 수 없습니다. 테이블에 레코드가 없으면 ifnull에서 비교/작업 할 수있는 방법이 없습니다. –

+0

이 테이블에 얼마나 많은 행이있을 것으로 예상합니까? –

답변

0

이 작동하는 것 같다 :

select ifnull(sequences.auth_id, x.auth_id) as auth_id from sequences right join (select 1 as auth_id) x on 1; 

가정은 시퀀스에서 단 1 행이 점이다. 트릭은 가짜 테이블에 하나의 행으로 올바른 조인을 만든 다음 ifnull을 사용하여 원하는 값을 얻는 것입니다.

+0

그건 효과가있어. – SaintHax