iT邦幫忙

0

想問一下有關MYSQL資料庫能夠加入if的條件嗎?

https://ithelp.ithome.com.tw/upload/images/20200607/20120427GP7yOQlXh9.jpg
我是做一個這樣的樹狀資料庫

第一層t1 第二層是t2 ,LEFT JOIN加入的是t3

SELECT t1.pid AS pid1, t1.doc AS doc1, t1.ppath AS pdoc1, t2.pid AS pid2, t2.doc AS doc2, t2.ppath AS pdoc2, t3 . * 
FROM imgpath AS t1
LEFT JOIN imgpath AS t2 ON t2.pidkey = t1.pid, product AS t3
WHERE t3.pid = t2.pid

 if ( '%s'<5)
     {
     t1.pid='%s';	
	 }
     else{
     	t3.pid='%s'; 	

想要當'%s' < 5 的時候出現AND t1.pid='%s'
然後當'%s' > 5的時候出現AND t3.pid='%s'

我這樣寫是報錯的狀態....
請問是不能這樣寫還是我語法寫錯了呢?

看更多先前的討論...收起先前的討論...
listennn08 iT邦研究生 2 級 ‧ 2020-06-07 21:50:34 檢舉
你的問法讓人看不太懂
你的 if 是要加在 mysql 裡 還是加在 組合 mysql 語法的程式裡
listennn08你好! 不好意思表達的不好,我改了問題,麻煩看一下謝謝
listennn08 iT邦研究生 2 級 ‧ 2020-06-07 23:37:50 檢舉
那 %s 是什麼
japhenchen iT邦研究生 1 級 ‧ 2020-06-08 08:01:31 檢舉
用CASE .. WHEN .. THEN .. END
https://www.w3schools.com/sql/func_mysql_case.asp
japhenchen非常謝謝您的資訊!
1
純真的人
iT邦高手 1 級 ‧ 2020-06-08 00:41:49

你可以參考mysql if用法
我不知道你最終目的..
https://www.barryblogs.com/mysql-ifnull-if/

非常謝謝你的資料

1
一級屠豬士
iT邦大師 1 級 ‧ 2020-06-08 08:11:32

這個不需要用到 case when 啦.用 and or 連接就可以了.
自己試試看.

恩恩好的謝謝你

0
浩瀚星空
iT邦超人 1 級 ‧ 2020-06-08 14:52:05

因該是如下的寫法就行了,雖然我不知道你的 %s 是啥鬼
不過我先照用就是了

 (('%s'<5 and t1.pid='%s') or ('%s'>=5 and t3.pid='%s'))     

這樣就行了。不過一般來說,我想我不會這樣用。
只是不了解你要做的事,也不知道要怎麼改就是了。

非常感謝您! %s是我之前在某本書上看到的,就是變數之類的

你看到的因該是要搭配 sprintf 這個函數才對。
不過理論上你這邊因該是數值,而不是字串。
正常要用 %d 。

喔喔對,我前面有打sprintf忘記複製到了,原來如此感謝指導,因為我是想說數字應該也算是字? 所以就用s了

我要發表回答

立即登入回答