喵喵笨兔 の 喵喵的家~遊戲天地 - 首頁(上版面)
喵喵笨兔 の 喵喵的家~遊戲天地 - 首頁(左版面)
首  頁 最新消息 遊戲攻略 遊戲影片 遊戲圖片 下載區 學習分享 留言板 FB粉絲團
 喵喵笨兔 の 喵喵的家~遊戲天地 - PHP MySQL SELECT...CONCAT()...LIKE.. 日期型態無法顯示內容是 NULL 資料列之解決方法

PHP MySQL SELECT...CONCAT()...LIKE.. 日期型態無法顯示內容是 NULL 資料列之解決方法

 此為笨兔在摸索寫作過程中遇到的情況,及胡亂摸索混出的解決方法,給自己參考記錄用的,若有需者就參考!若有錯誤或其它方法,請自行更正唄!

    ※倘若在 MySQL 資料庫內有個 test 資料表,其二個欄位 t_name、t_date(日期類型) 及資料如下:

    t_name t_date
    笨兔 2019-06-20
    小笨兔 NULL
    大笨兔 2019-07-01

 範例1:若做個搜尋參數,SQL 設定如下 (笨兔以PDO函數來寫,用Mysql或MySQLi函數亦同)

<?php
  $sql = "SELECT * FROM test WHERE CONCAT(t_name, t_date) LIKE '%{$_GET['search']}%'";
$rs = $conn -> prepare($sql);
$rs -> execute();
foreach($rs as $row){
echo $row['t_name'].":".$row['t_date']."<br>";
} ?>
 ※一開始所得的結果如下,其中日期型態有 NULL 的 (小笨兔 NULL) 資料列會自動被排除而不會出現。  笨兔:2019-06-20  大笨兔:2019-07-01

 範例2:改成如下,也就是加入 IFNULL() 函數,即可將 NULL 值的資料列顯示了!^^

<?php
  $sql = "SELECT * FROM test WHERE CONCAT(t_name, IFNULL(t_date,'')) LIKE '%{$_GET['search']}%'";
$rs = $conn -> prepare($sql);
$rs -> execute();
foreach($rs as $row){
echo $row['t_name'].":".$row['t_date']."<br>";
} ?>
 ※一開始所得的結果如下,其中 (小笨兔 NULL) 資料列就會顯現了。^^  笨兔:2019-06-20  小笨兔:  大笨兔:2019-07-01  ※順便記錄一下 IFNULL() 語法之意:   IFNULL(X,Y) -> 如果 X 不是 NULL (不包容0或空值) 則返回為 X 值。若是 NULL,則為 Y 值。   上述範例中 IFNULL(t_date,'') -> 若不是 NULL 則為原有的 t_date 值,若為 NULL,則為空值。
笨兔隨手筆記於 2019/7/2

喵喵笨兔 の 喵喵的家~遊戲天地
http://vv0817.tk
http://vvv.lionfree.net
http://qo3op.asuscomm.com/vvv
http://victortu.000webhostapp.com
https://uoedgpkhyfwzmd7zua8myg-on.drv.tw/vvv