我的SQL in()使用语法和修复一个SQL查询


my sql in() using sytax and fix a sql query

我需要一个小修复查询请帮助我,在不固定。看到底部,我的示例代码,感谢所有的帮助..

ny_xd_satilanlar database rows
id---uyid---toplam---sipno
01---16---1---1237777777
02---30---3---1301275922
03---30---2---1301741801
04---11---4---1123467988

//NOT WORK RETURN : 0 (zero)
$total_urun = mysql_fetch_array(mysql_query("SELECT SUM(adet) as toplam FROM ny_xd_satilanlar WHERE sipno IN ('{$curTel['sipnolar']}') AND uid='{$urunid}'"));
$total_urun = $total_urun[toplam];
// EXAMPLE 1 = NOT WORK RETURN : 0 (zero)  HOW TO FİX QUERY ????
SELECT SUM(adet) as toplam FROM ny_xd_satilanlar WHERE sipno IN ('1237777777,1301275922,1301741801') AND uid='30'
// EXAMPLE 2 = NOT WORKİNG TRUE RETURN : 3 (three)  HOW TO FİX QUERY ????
SELECT SUM(adet) as toplam FROM ny_xd_satilanlar WHERE sipno IN ('1301275922,1301741801') AND uid='30'
// EXAMPLE 1 ALTERNATİVE QUERY = OK WORK RETURN 3+2= :5 (five) 
SELECT SUM(adet) as toplam FROM ny_xd_satilanlar WHERE (sipno='1237777777' OR sipno='1301275922' OR sipno='1301741801') AND uid='30'

需要FİX第二个查询??

需要分隔IN的值。目前,所有值都包含在'中,因此它们表现为单个值。除非正确转义,否则任何用引号括起来的内容都将被视为一个值。

SELECT SUM(adet) as toplam FROM ny_xd_satilanlar WHERE sipno IN (1237777777, 1301275922, 1301741801) AND uid='30'
SELECT SUM(adet) as toplam FROM ny_xd_satilanlar WHERE sipno IN (1301275922, 1301741801) AND uid='30'

或者,如果它们应该是字符串数:

SELECT SUM(adet) as toplam FROM ny_xd_satilanlar WHERE sipno IN ('1237777777', '1301275922', '1301741801') AND uid='30'
SELECT SUM(adet) as toplam FROM ny_xd_satilanlar WHERE sipno IN ('1301275922', '1301741801') AND uid='30'

您需要使用单引号字符分隔您希望IN子句工作的值:

SELECT SUM(adet) as toplam FROM ny_xd_satilanlar WHERE sipno IN ('1237777777','1301275922','1301741801') AND uid='30';
SELECT SUM(adet) as toplam FROM ny_xd_satilanlar WHERE sipno IN ('1301275922','1301741801') AND uid='30';