【问题标题】:How can I update two rows with different where如何更新具有不同位置的两行
【发布时间】:2014-07-26 05:02:21
【问题描述】:

我有两行

Id name               value
1  close_site           1
2  close_site_message  close message

我想从 close_site 更新第 1 行并将值更改为 0 并从

更新第 2 行

close_site_message 并通过一个查询将值更改为不同的文本

【问题讨论】:

  • 到目前为止你做了什么?显示一些代码
  • @ShahRukh 我认为 $ this-> db-> update_batch ();是解决办法,但我不知道用过

标签: php mysql codeigniter sql-update


【解决方案1】:

试试这个

$data = array(
  array(
  'name' => 'close_site',
  'value' => 0,
     ),
    array(
   'name'=> 'close_site_message',
  'value' => 'close message',
      )
     );

    $this->db->update_batch('table', $data, 'name'); 

【讨论】:

  • 没有工作它给我这个错误:错误号:1064 Erreur de syntaxe près de 'WHERE value IN (1,'不同的文本')' à la ligne 1 UPDATE @ 987654323@ SET WHERE value IN (1,'不同文本') 文件名:C:\wamp\www\project\system\database\DB_driver.php 行号:330
【解决方案2】:
UPDATE [TABLE_NAME]
SET value = 
  CASE 
    WHEN name = 'close_site' THEN 0 
    WHEN name = 'close_site_message' THEN 'DIFFERENT_TEXT' 
    ELSE value 
  END

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-09
    • 2021-11-18
    • 2017-12-17
    • 2019-04-14
    • 2021-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多