1. 程式人生 > >mysql批量修改某欄位的值

mysql批量修改某欄位的值

sql語句一直停留在最最基本的增刪改查水平,遇到一個批量更改資料庫某欄位的值的需求,通過查閱資料積累下來吧。

需求是把sex為'1'的資料的headpicture改為'1.png',sex為'0'的資料的headpicture改為'0.png'。


修改語句:

update t_user set t_user.headpicture= REPLACE (headpicture,'3','1.png') where t_user.sex='1';
        這種方法適用於原headpicture欄位值不為空的情況下。我的原資料是空,用這種方法還要先給headpicture賦值。

't_user'是表名,'headpicture'是要修改的欄位名,replace(修改後的欄位名,'被修改的內容','修改後的內容'),where後可以設定一些修改的前提條件。

總感覺上述方法比較笨,不應該這麼複雜的,於是就找到了一個可以直接修改,無視空值的方法是:

update t_user set headpicture ='0.png' where sex ='0'; 

總結:

這麼簡單的句子都不能信手拈來,sql語句還需要多練多寫呀。

相關推薦

mysql批量修改

sql語句一直停留在最最基本的增刪改查水平,遇到一個批量更改資料庫某欄位的值的需求,通過查閱資料積累下來吧。 需求是把sex為'1'的資料的headpicture改為'1.png',sex為'0'的資

MySQL 批量修改一列的為另外一個字段的

效率 請求 chang 如果 app 問題 並不是 bsp div mysql> select * from fruit; +----+--------+-------+ | id | name | price | +----+--------+-------+

MySQL根據一個或者多個查詢重複資料,並且保留最大的記錄

問題場景 當系統沒有處理好併發操作的情況下,操作人員同時操作一張表的情況下,資料庫有可能被插入相同記錄,這些會帶來隱藏的bug。 解決思路一 解決併發操作的衝突。 解決思路二 對資料庫(MySQL)某張表去重,首先確定你的業務是否允許重複,不允許你

mysql 批量修改表中欄資料成不同的 用一個表更新另一個表的方法

首先mysql更新資料的某個欄位,一般這樣寫: UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value'; 也可以這樣用in指定要更新的記錄: UPDATE mytable SET myfield = 'value

Thinkphp中如何表達MYSQL中的不為空is not null

Thinkphp 的文件經常不夠完整的表達MYSQL的各種組合,很多東西需要被嘗試後才能知道,筆者就遇到過一個問題,MYSQL查詢語句中有個表示式is not null ,在thinkphp中就不能用“=” 或者簡單的eq等來表示。 有一種變相的處理方法就是直接把where中的array引數換成st

MySQL 查詢表中某個重複的記錄

MySQL中,查詢表(dat_bill_2018_11)中欄位(product_id)值重複的記錄: SELECT product_id, COUNT(*) AS COUNT FROM dat_bill_201811 GROUP BY product_id HAVING COUNT > 1;

delphi 取得資料集的六種方法

//取name欄位的示例   edit1.Text:=ADOquery1.Fields[2].AsString;   //取得資料表的第二個欄位的值 edit2.Text:=ADOquery1.FieldValues['name']; edit3.Text:=

java mongo 修改某個

Query query = new Query(); query.addCriteria(Criteria.where("videoNum").is(videoNum)); query.addCriteria(Criteria.where("userno").is(user

MySQL 模糊查詢用逗號隔開

1. 查詢pnum欄位中包含3或者9的記錄 SELECT * FROM test WHERE find_in_set('3',pnum) OR find_in_set('9',pnum); SELECT * FROM test WHERE CONCAT(',',pnum,'

MYSQL】判斷某個是否包含於某個字串中

SQL函式:INSTR(str1,str2);  //mysql中的語法似乎只支援2個引數 引數說明:str1:在這個字串中查詢、str2:欄位值 舉個例子:查詢出名字在字串“張三王五朱六”出現的記錄 表資料:

把A表的賦B表中的

CREATE TABLE zhtt_a ( a VARCHAR2(10),b VARCHAR2(10) ); CREATE TABLE zhtt_b ( a VARCHAR2(10),b VARCHAR2(10) ); insert into zhtt_a values(

sql的update語句 批量更新

Mysql: 1 有時候要實現欄位的批量替換 update 表名 set 欄位A = replace(欄位A ,"png","jpg" ); 2 批量拼接字串到某欄位 update 表名 set 欄位A = CONCAT( 欄位A  , "xxx"  ); up

thinkphp下批量修改某個

<form action="" method="post" id="formtable">  <div class="opera-td" >         <a href="javascript:;" class="button audi

MySQL ifnull函式判斷為null時使用預設

在使用left join等聯表查詢時,常遇到某些欄位為null,一般都在後臺語言使用if a==null 判斷做處理,其實MySQL本身也有一個ifnull函式可以處理。 假設有兩張表 name表: 1 2 3 4 5 6 7 8 9 10 mysql>

mysql修改新增(alter table 表名 add column 或者 modify column)且帶unique時提示duplicate entry for key的原因以及解決方案

今天在公司臨時維護一張表時,我作了一個小動作,新增一個欄位,並且設定為unique時,盡然無法新增欄位,我當時就納悶了,寫了這麼多sql,這麼奇怪的問題還是第一次見,不多說,直接看圖 【我的sql檔案如下】 【執行sql語句報錯:alter table smart_

thinkphp修改

thinkphp3.0增加setInc、setDec方法,今天檢視thinkphp2.0的方法setInc、setDec時是這樣寫的:   而對於統計欄位(通常指的是數字型別)的更新,系統還提供了 setInc 和 setDec 方法:  $User = M( "User"

Oracle 修改允許為null

待修改欄位假定為:shuifen 1.當該欄位為空時,可直接修改: alter table reportqymx modify shuifen null; 2.當待修改欄位不為空時: 新增一列 把要改變的列的值轉移過去並清空原列的值 改變列的資料型別

DB2修改資料

修改或擷取表某欄位某位資料,如某欄位長120位,現需擷取第9開始長度位12位的資料? 可採用以下兩種關鍵字: 1.REGHT 2.SUBSTR(OS390更常用) 語法如下: 該關鍵字相關用法案例: 1. 2. 3. 4. 5.  .....等等,參考《..SQL

mysql alter修改的長度型別名稱詳解

mysql 修改欄位長度 alter table news  modify column titlevarchar(130); alter table 表名 modify column 欄位名 型別; 如:news 表裡的title  欄位 原來長度是100個字元,現長度要改成130個字元 alter ta

Mysql查詢按照指定順序排序

SELECT * FROM documents WHERE id IN (5,3,6,1) ORDER BY FIELD(id,5,3,6,1); 或者 SELECT * FROM documents WHERE id IN (5,3,6,1) ORDER BY subst