データベースからアーティクルを返す必要があるプロシージャは、 _searchParam
というパラメータとしてC#コードから送信するアーティクルコードによってアーティクルが選択されています。私は例100のコードを持つ記事を持っていました。その記事は削除され、後で新しい記事を追加してコードを100に設定しました。 これで、同じコードのデータベースに2つの記事があります。プロシージャが期待通りに動作しない
AND T1.IsDeleted = 0;
が、それは李に見えますので、手続きは、検索コードとの最初の記事をreturs(そしてそれは1を削除しています):私が言った理由、それはですKE AND T1.IsDeleted = 0;
は無視されるか、それは数えていない。..
ここで手順:それは創設をSQL最初のものですので、状態T1.IsDeleted = '1'
と
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
記事はオールウェイズ、(最初のもの)が返されます とclausuleは無視されている場合、なぜT1.IsDeleted = '0'
私の中の私にはわからない...
は、あなたが3つの条件articlecode = searchparm OR値= searchparmと= 0 isdeletedを持っている依存 - 多分あなたが作るために、それらの周りに括弧が必要その正しいミックスをしていることを確認しますか? – BugFinder