SELECT * FROM `cs_client_pn` WHERE '316-416-2160,S0607010' like '%pn%'----------------------------------------------
It should be:
SELECT * FROM `cs_client_pn` WHERE pn like '%316-416-2160,S0607010 %'
It should be:
SELECT * FROM `cs_client_pn` WHERE pn like '%316-416-2160,S0607010 %'
SELECT * FROM `cs_client_pn` WHERE pn like '%316-416-2160,S0607010 %'你是想把含有316-416-2160,S0607010 的字段显示出来?
那这样,
SELECT * FROM `cs_client_pn` WHERE pn like '%316-416-2160,S0607010 %' or pn2 like '%316-416-2160,S0607010 %' or pn3 like '%316-416-2160,S0607010 %' ...pn已经在你的数据库中,没有必要模糊字段。
我說一下這邊的情況
a.cs_client_pn裡的pn有316-416-2160這條記錄
b.table表裡的subject有316-416-2160,S0607010
我要找出b.table裡subject中有存在於a.cs_client_pn的記錄
SELECT * FROM `cs_client_pn` WHERE pn like '%316-416-2160,S0607010 %'
因為pn只是316-416-2160,S0607010這裡的一部份
这个问题一点都不另类,不就是字符串连接吗?MYSQL的参考手册上都说的很清楚了SELECT * FROM `cs_client_pn` WHERE '316-416-2160,S0607010' like CONCAT('%', pn, '%')
a.cs_client_pn裡的pn有316-416-2160這條記錄
b.table表裡的subject有316-416-2160,S0607010
我要找出b.table裡subject中有存在於a.cs_client_pn的記錄and you use:
SELECT * FROM `cs_client_pn` WHERE '316-416-2160,S0607010' like CONCAT('%', pn, '%')
--------------------------------------------
It really mazed me.
Which table do you want to get the data from?????
as you want,it should be:
SELECT * FROM `table` WHERE subject like '316-416-2160%'
這種方法要循環兩次才能取到數據
select * from cs_client_pn order by pn
.....
while($rs=mysql_fetch_object($result)){
SELECT * FROM `table` WHERE subject like '$rs->pn%'
....
while($rs1=mysql_fetch_object($result1)){
echo ....
}
}
但是用SELECT * FROM `cs_client_pn` WHERE '316-416-2160,S0607010' like CONCAT('%', pn, '%')這種方法一次就夠了
我還沒測試
服務器壞了
只有等到星期一了
到時加分結貼