Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL查询建议_Mysql_Sql - Fatal编程技术网

Mysql SQL查询建议

Mysql SQL查询建议,mysql,sql,Mysql,Sql,我写了这个查询。它给了我一个错误,它与转义引号有关。如果有人能帮我,那太好了 我想做的事情: 如果网站栏有数据,则显示公司名称作为链接,如果网站栏没有数据,则正常显示公司名称 它给我的错误是: SELECT CONCAT( CASE WHEN qpiy_test_data_2.`Website` != '' THEN '<a href="http://',wpiy_test_data_2.`Website`,'" target="_blank">' ,wpiy_tes

我写了这个查询。它给了我一个错误,它与转义引号有关。如果有人能帮我,那太好了

我想做的事情:

如果网站栏有数据,则显示公司名称作为链接,如果网站栏没有数据,则正常显示公司名称

它给我的错误是:

SELECT CONCAT(
    CASE WHEN qpiy_test_data_2.`Website` != '' THEN '<a href="http://',wpiy_test_data_2.`Website`,'" target="_blank">'
    ,wpiy_test_data_2.`Company_Name`,
    CASE WHEN qpiy_test_data_2.`Website` != '' THEN '</a>') AS Company_Name, 
       wpiy_test_data_2.`Input_Product_Name`,
       wpiy_test_data_2.`Brand_Name`,
       wpiy_test_data_2.`Usage_Category`,
       wpiy_test_data_2.`Usage_Annotation`,
       wpiy_test_data_2.`Standard`,
       wpiy_test_data_2.`City`,
       wpiy_test_data_2.`Province`,
       wpiy_test_data_2.`Phone`,
       wpiy_test_data_2.`Email`,
       wpiy_test_data_2.`Website`
FROM wpiy_test_data_2 LIMIT 0, 25
**MySQL said: Documentation**

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'wpiy_test_data_2.`Website`,'" target="_blank">'
    ,wpiy_test_data_2.`Company_' at line 2

要连接字符串,需要使用CONCAT函数

当条件不为true时,需要一个ELSE子句来显示其他内容

在CASE表达式的末尾还需要一个END关键字

    CASE WHEN qpiy_test_data_2.`Website` != '' 
    THEN CONCAT('<a href="http://',wpiy_test_data_2.`Website`,'" target="_blank">'
                ,wpiy_test_data_2.`Company_Name`,'</a>') 
    ELSE wpiy_test_data_2.`Company_Name`
    END AS Company_Name, 

最后一个对我有用的问题

SELECT 
( CASE 
WHEN wpiy_test_data_2.`Website` != '' THEN CONCAT('<a href="http://',wpiy_test_data_2.`Website`,'" target="_blank">' ,wpiy_test_data_2.`Company_Name`,'</a>') 
ELSE wpiy_test_data_2.`Company_Name` end) AS Company_Name,
wpiy_test_data_2.`Company_Name` AS Actual_Name,
wpiy_test_data_2.`Input_Product_Name`,
wpiy_test_data_2.`Brand_Name`,
wpiy_test_data_2.`Usage_Category`,
wpiy_test_data_2.`Usage_Annotation`,
wpiy_test_data_2.`Standard`,
wpiy_test_data_2.`City`,
wpiy_test_data_2.`Province`,
wpiy_test_data_2.`Phone`,
wpiy_test_data_2.`Email`,
wpiy_test_data_2.`Website`
FROM 
wpiy_test_data_2

只要看看你上面问题的格式就可以了。您可以看到您正在做的事情中存在一些问题。@Barmar感谢您的建议
SELECT 
( CASE 
WHEN wpiy_test_data_2.`Website` != '' THEN CONCAT('<a href="http://',wpiy_test_data_2.`Website`,'" target="_blank">' ,wpiy_test_data_2.`Company_Name`,'</a>') 
ELSE wpiy_test_data_2.`Company_Name` end) AS Company_Name,
wpiy_test_data_2.`Company_Name` AS Actual_Name,
wpiy_test_data_2.`Input_Product_Name`,
wpiy_test_data_2.`Brand_Name`,
wpiy_test_data_2.`Usage_Category`,
wpiy_test_data_2.`Usage_Annotation`,
wpiy_test_data_2.`Standard`,
wpiy_test_data_2.`City`,
wpiy_test_data_2.`Province`,
wpiy_test_data_2.`Phone`,
wpiy_test_data_2.`Email`,
wpiy_test_data_2.`Website`
FROM 
wpiy_test_data_2