mysql を使用してデータベースにクエリを実行すると、left join が実行されるため、一部の関連するフィールドの内容が NULL になるため、レコードセットを取得した後、NULL データを変換する必要があります。
この記事では、クエリ時に変換処理を直接実行する方法を提供します。取得したレコードセットを変換する必要はありません。
mysql は IFNULL 関数を提供します
IFNULL(expr1, expr2)
expr1 が NULL でない場合、IFNULL() は expr1 を返し、それ以外の場合は expr2 を返します
例:
userTable 構造とデータ
+-----+---------------+| uid | lastlogintime |
+----+-----------+| id | name | +----+-----------+| 1 | Abby | | 2 | Daisy || 3 | Christine | +----+-----------+
user_lastloginテーブル構造とデータ
+-----+---------------+| 1 | 1488188120 || 3 | 1488188131 | +-----+---------------+
ユーザー名とlastlogintimeをクエリ
mysql> select a.id,a.name,b.lastlogintime from user as a left join user_lastlogin as b on a.id=b.uid; +----+-----------+---------------+| id | name | lastlogintime | +----+-----------+---------------+| 1 | Abby | 1488188120 | | 2 | Daisy | NULL || 3 | Christine | 1488188131 | +----+-----------+---------------+
id=2のユーザーはログインしていないため、user_lastloginテーブルにはレコードがありません。したがって、lastlogintime は NULL になります。
IFNULL を使用して NULL を 0 に変換します
IFNULL(lastlogintime, 0)
mysql> select a.id,a.name,IFNULL(b.lastlogintime,0) as lastlogintime from user as a left join user_lastlogin as b on a.id=b.uid; +----+-----------+---------------+| id | name | lastlogintime | +----+-----------+---------------+| 1 | Abby | 1488188120 | | 2 | Daisy | 0 || 3 | Christine | 1488188131 | +----+-----------+---------------+
この記事では、mysql で NULL データを変換する方法について説明します。関連コンテンツの詳細については、php 中国語 Web サイトを参照してください。
関連する推奨事項:
可変数のパラメータを使用するphp関数に関する関連コンテンツ
phpを介してSina APIを呼び出して短いリンクを生成する方法
以上がmysql を使用して NULL データを変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。