2017-06-27 18 views
1

を構築し、それがない場合は、条件付きでどのように私は条件付きでJSONオブジェクトを構築することができ、JSONオブジェクト例えば:MySQLの - 条件付きJSON_OBJECT

mysql> SELECT JSON_OBJECT(
     CASE 
     WHEN some_condition THEN key, val 
     ELSE 
      // do nothing 
     END CASE 

    ); 

を構築することは可能です。 Bascially私は非ヌルプロパティをinlcudeしたい。

+0

はい、それが可能です。 JSONオブジェクトの条件付き 'キー 'の使用例を教えてください。オブジェクトのキーの数は条件の数と等しいかそれよりも少ないことを理解していますか? –

+0

@Koshこれを実現する構文は何ですか?私が投稿したコードはうまくいきませんでしたか? – adam78

+1

構文は、正確な問題と望ましい結果によって異なります。 –

答えて

0

1つのオプションは次のとおりです。

mysql> SET @`key` = 'key', 
    ->  @`val` = 1; 
Query OK, 0 rows affected (0.00 sec) 

mysql> SELECT 
    -> CASE WHEN @`key` IS NOT NULL AND @`val` IS NOT NULL THEN 
    ->  JSON_OBJECT(@`key`, @`val`) 
    -> END `json`; 
+------------+ 
| json  | 
+------------+ 
| {"key": 1} | 
+------------+ 
1 row in set (0.00 sec) 

mysql> SET @`key` = 'key', 
    ->  @`val` = NULL; 
Query OK, 0 rows affected (0.00 sec) 

mysql> SELECT 
    -> CASE WHEN @`key` IS NOT NULL AND @`val` IS NOT NULL THEN 
    ->  JSON_OBJECT(@`key`, @`val`) 
    -> END `json`; 
+------+ 
| json | 
+------+ 
| NULL | 
+------+ 
1 row in set (0.01 sec)