2017-07-18 52 views
0

和上面一樣,我的sql查詢在.net項目中不起作用,儘管它在adminer/phpmyadmin中工作。這很奇怪。這裏是代碼:SQL查詢在.net項目中無法正常工作,但在adminer/phpmyadmin中運行正常

SELECT mh.id AS `id`, 
    IFNULL(ot.name, it.name) AS name, 
    IFNULL(ot.name_en, it.name_en) AS name_en 
FROM udata.table1 mh 
    INNER JOIN udata.table2 i ON mh.id= i.id 
    INNER JOIN adata.table3 it ON i.type = it.id 
    LEFT JOIN adata.table4 ot ON i.arg1 = ot.id AND i.kind = 46 
WHERE mh.status = '1' HAVING (`name_en` LIKE '%A%') LIMIT 0,30; 

Adminer給我2個結果不同於在我的c#項目中運行查詢。我得到這個錯誤有:

MySql.Data.MySqlClient.MySqlException (0x80004005): Unknown column 'name_en' in 'having clause' 

預先感謝您的任何幫助

+0

請告訴我們你的C#代碼。 – mjwills

回答

0

條款不能使用查詢的別名,而必須直接使用列。所以

HAVING (`name_en` LIKE '%A%') 

應該

HAVING (IFNULL(ot.name_en, it.name_en) LIKE '%A%') 
+0

錯誤現在看起來像這樣:'MySql.Data.MySqlClient.MySqlException(0x80004005):'having clause'中的未知列'ot.name_en' – kml

相關問題