PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   疑難雜症區 (https://www.pcdvd.com.tw/forumdisplay.php?f=34)
-   -   請教mysql的問題? (https://www.pcdvd.com.tw/showthread.php?t=635098)

missle 2006-07-08 02:11 PM

請教mysql的問題?
 
mysql>select NOT(1+1);
->0

MYSQL>select ! 1+1;
->1

mysql>select 6 > '54abc';
->0

mysql>select 6 > 'abc54';
->1

這是看起來很簡單的問題
不過我沒學過mysql看不大懂
有沒有人可解釋一下的?

kec 2006-07-09 03:14 AM

引用:
作者missle
mysql>select NOT(1+1);
->0

NOT (1+1) -> NOT 2 -> 0

改成 select NOT 1+1; 結果也是 0,因為NOT 運算優先序比 + 低。

引用:
作者missle
MYSQL>select ! 1+1;
->1

! 運算優先序比 + 高。

!1+1 -> (!1)+1 -> 0+1 -> 1

引用:
作者missle
mysql>select 6 > '54abc';
->0

因為6和'54ab'資料類型不同,會先轉換成數字再比較。

6>'54abc' -> 6>54 -> 0

引用:
作者missle
mysql>select 6 > 'abc54';
->1

因為6和'abc54'資料類型不同,會先轉換成數字再比較。

6>'abc54' -> 6>0 -> 0

kec 2006-07-09 03:22 AM

引用:
作者kec
因為6和'abc54'資料類型不同,會先轉換成數字再比較。

6>'abc54' -> 6>0 -> 0

打錯了,看到時已經來不及改了。
6>'abc54' -> 6>0 -> 1 才對。

missle 2006-07-09 08:27 AM

大概有點懂了 謝謝kec詳細的解答

missle 2006-07-09 09:07 AM

這裡面not的意思 可否請kec再解釋一下? 好久沒碰程式設計了 都忘光光了

kec 2006-07-09 10:10 AM

在MySQL中,NOT 和 ! 都是邏輯的否定(非)運算,但它們的運算優先序不同。

MySQL處理邏輯運算時以 0 為偽;非零數值為真。運算結果為偽傳回0;運算結果為真則傳回1。

missle 2006-07-09 05:06 PM

謝謝kec的指教 學習mysql我是要一個一個函數看完嗎? 還是怎麼學習才快? 還是說看實例遇到問題再來看mysql手冊會較好呢?


所有的時間均為GMT +8。 現在的時間是02:40 PM.

vBulletin Version 3.0.1
powered_by_vbulletin 2025。