2011-06-30 9 views
0

私はテーブルを次ていますSelectステートメントの奇妙な行動

+---------------+----------+------+-----+---------+----------------+ 
| Field   | Type  | Null | Key | Default | Extra   | 
+---------------+----------+------+-----+---------+----------------+ 
| id   | int(11) | NO | PRI | NULL | auto_increment | 
| CAMXTimeStamp | datetime | YES |  | NULL |    | 
| CAMXMessage | longtext | YES |  | NULL |    | 
+---------------+----------+------+-----+---------+----------------+ 

を私は最低のidを持つレコードを選択しようとしています:

select id from camxmessages having min(id); 

そしてテーブルにはすべてのレコードを失い、そして私ではありませんどんな結果を得ている、私は間違って何を考え?

+0

私の知る限り 'having'は集約関数なしで使用することができません。私が間違っている? –

+0

@ハリー・ジョイ私はそれがうまくいくのも驚いた。 'HAVING'は常に' GROUP BY'と対になるはずです。 –

+1

はmysql特有のものです。あなたは本当にテーブルからレコードを失いますか? – Szocske

答えて

4
SELECT MIN(ID) 
FROM CAMXMESSAGES 
+0

それはそれを行う最良の方法です。 +1。 –

4
SELECT * 
FROM camxmessages 
ORDER BY id 
LIMIT 1 
+0

+1のテストからMIN(id)これはより速く実行します – niktrs

+0

私は 'SELECT MIN(id)...'がより速いと思います。私は@ Giannの答えに投票しました。 –

+1

行データの残りの部分を残したくない場合は、 – niktrs