null 値を取得します。
mysql> create table noRows (id int(3));
Query OK, 0 rows affected (0.03 sec)
mysql> select max(id) from noRows;
+---------+
| max(id) |
+---------+
| NULL |
+---------+
1 row in set (0.00 sec)
ただし、合体を使用して必要なものを取得できます。
mysql> select coalesce(max(id),1) from noRows;
+---------------------+
| coalesce(max(id),1) |
+---------------------+
| 1 |
+---------------------+
1 row in set (0.01 sec)
編集:ユーザーが既に持っていることを確認したい場合、そうでない場合は、新しい行を挿入するために、私の知る限り、単一のクエリでは実行できませんが、次のように動作するはずです:
$receipt = 1000;
$query_receipt = mysql_query("SELECT MAX(receipt) FROM tbl_payments");
$num_rows = mysql_num_rows($query_receipt);
if($num_rows>0)
{
// Assumes $ID to be some unique field used to identify your customer stored in field ID.
$sql="insert into tbl_payments (ID, receipt) values ($ID, $receipt)";
mysql_result($sql)
}
else
{
// Do stuff here to get the receipt from the first resultset.
}
mysql_*
その点で、古い非推奨の関数から離れて、代わりにPDOに移行することを検討することをお勧めします。それははるかに安全で、より多くの機能を備えています。