這是我的程序,它應該從數據庫中返回一篇文章,文章由我從我的C#代碼發送的文章代碼選擇,作爲名爲 _searchParam
的參數,現在我遇到了這種情況我曾與例如100代碼項目,並且該文章被刪除了,後來我添加新的文章,它的代碼設置爲100, 所以我現在所用相同的代碼庫兩篇文章,與不同的是他們中的一個將被刪除 這就是爲什麼我說:程序沒有按預期工作
AND T1.IsDeleted = 0;
但過程returs第一篇文章與搜索代碼(而這刪除的一個),所以看起來李柯AND T1.IsDeleted = 0;
被忽略,或者它不算..
程序在這裏:
CREATE DEFINER=`root`@`localhost` PROCEDURE `ArticleGetArticle`(
_searchParam varchar(50)
)
BEGIN
SELECT T1.*,T2.*,T3.Value, T3.Description
From articles as T1 LEFT JOIN barcodes as T2 ON T1.ArticleId=T2.ArticleId JOIN taxes as T3 ON T1.TaxId=T3.TaxId
Where T1.ArticleCode=_searchParam OR T2.Value=_searchParam AND T1.IsDeleted = 0;
END
文章與狀態T1.IsDeleted = '1'
是百達返回(第一個),因爲這是該SQL創立的第一個, ,我不知道爲什麼T1.IsDeleted = '0'
我在哪裏clausule被忽略..
取決於你有3個條件articlecode = searchparm OR值= searchparm並請將isDeleted = 0 - 也許你需要圍繞這些括號使確保它做正確的組合? – BugFinder