mySQL中的目录路径

时间:2014-06-20 20:43:58

标签: mysql sql case

我正试图通过一系列"更正" path作为mySQL数据库列的字符串。

由于多个实例可能同时被UPDATEd,我选择使用MySQL的CASE语法,但我并不过分熟悉它。

结果通过" 0"到数据库,而不是字符串。

我见过很多使用整数作为案例的例子,但我需要使用字符串。我认为这让我感到悲伤。

SO社区是否可以查看问题所在?

以下是上面调试行的回显SQL:

UPDATE linksUpdates

 SET newTarget = CASE 

  WHEN hitMissed = '/dir/dir/misLink1'         THEN newTarget = 'dir/home' 
  WHEN hitMissed = '/dir/dir/misLink2'         THEN newTarget = 'photos' 
  WHEN hitMissed = '/dir/dir/anotherBadLink'   THEN newTarget = 'dir/home' 
  END 
 WHERE misdirect IN (
   '/dir/dir/misLink1',
   '/dir/dir/misLink2',
   '/dir/dir/anotherBadLink'
       )

1 个答案:

答案 0 :(得分:1)

THEN语句中的CASE不需要(或不需要)列名。您在打开CASE之前已经指定了这个。

UPDATE linksUpdates

 SET newTarget = (CASE 

  WHEN hitMissed = '/dir/dir/misLink1'         THEN 'dir/home' 
  WHEN hitMissed = '/dir/dir/misLink2'         THEN 'photos' 
  WHEN hitMissed = '/dir/dir/anotherBadLink'   THEN 'dir/home' 
  END)
 WHERE misdirect IN (
   '/dir/dir/misLink1',
   '/dir/dir/misLink2',
   '/dir/dir/anotherBadLink'
       )