【问题标题】:Add some text on result of MySQL Case Operator在 MySQL Case Operator 的结果上添加一些文本
【发布时间】:2018-06-21 14:44:35
【问题描述】:

如何在 MySQL Case Operator 的结果上添加一些文本?

我想得到这样的结果:

<a href="/job/234/php-developer"></a>

我尝试了这个,但得到一个错误语法:

SELECT (CASE
  WHEN job_url_outside IS NULL 
    THEN '<a href="/job/', job_id, '/', job_url, '"></a>' 
    ELSE '<a href="', job_url_outside, '" target="_blank" rel="noopener"></a>' 
    END) AS job_url 
  FROM job

【问题讨论】:

  • 你能分享完整的错误信息吗?
  • 查询错误 (1064): 'job_id, '/', job_url, '">' ELSE '
  • ...可能 MySQL 服务器不知道如何处理所有这些逗号分隔值。查看有关如何使用 CASE 的文档
  • 并且,对于您的下一个问题:请始终将此类错误消息添加到问题中,而不是添加到评论部分

标签: mysql sql mariadb query-builder


【解决方案1】:

您可能想连接一些字符串?然后使用以下查询,其中添加了CONCAT 来进行连接:

SELECT (CASE
  WHEN job_url_outside IS NULL 
    THEN CONCAT('<a href="/job/', job_id, '/', job_url, '"></a>') 
    ELSE CONCAT('<a href="', job_url_outside, '" target="_blank" rel="noopener"></a>') 
    END) AS job_url 
  FROM job

【讨论】:

    【解决方案2】:

    你应该把href字符串串起来。

    SELECT (CASE WHEN job_url_outside IS NULL THEN '<a href="/job/' + job_id + '/' + job_url + '"></a>' ELSE '<a href="' + job_url_outside + '" target="_blank" rel="noopener"></a>' END) AS job_url FROM job
    

    【讨论】:

      【解决方案3】:

      尝试使用:

      CONCAT(column,'some text',column)
      

      更多信息here

      你的情况是这样的:

      SELECT (CASE
        WHEN job_url_outside IS NULL 
          THEN CONCAT('<a href="/job/', job_id, '/', job_url, '"></a>') 
          ELSE CONCAT('<a href="', job_url_outside, '" target="_blank" rel="noopener"></a>') 
          END) AS job_url 
        FROM job;
      

      演示 here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多