【mysql】使用 if() 函式快速交換資料
條件:給定一張表 user,有欄位 id,name,vip, 要求使用一條SQL把 vip=y 的使用者改為 vip=n,反之亦然。
update user set user = if(vip='y','n','y')
SQL的邏輯說明: 設定user 等於 if返回的結果 ,if函式內第一個欄位是條件,第二個欄位是滿足條件返回的值,第三個欄位是不滿足條件返回的值。
原SQL
id name vip
1 A y
2 B n
3 C n
4 D y
執行之後
id name vip
1 A n
2 B y
3 C y
4 D n
if() 函式強大的功能同樣適用於查詢,如:
select id,name,if(vip='y','會員','不是會員') as vips from user where vip='y' or sex='n';
id name vips
1 A 不是會員
2 B 會員
3 C 不是會員
4 D 會員
相關推薦
【mysql】使用 if() 函式快速交換資料
條件:給定一張表 user,有欄位 id,name,vip, 要求使用一條SQL把 vip=y 的使用者改為 vip=n,反之亦然。 update user set user = if(vip='y','n','y') SQL的邏輯說明: 設定user 
【MYSQL】金額(金錢)相關的資料儲存型別
int 對於遊戲幣等代幣,一般儲存為int型別是可行的。 問題在於越界,int型別長度為11位。 在儲存人民幣相關的金額的時候,則只能儲存到9長度的人民幣,也就是說,最大隻能儲存999999999,不到10億的數值,如果業務增長很快的話,就會給自己留下隱患
【Java】——list中快速進行資料篩選
小編最近的專案中經常需要多個list拼接成一個,才能進行之後的操作,如何保證多個list拼接是一條資料呢?大家都知道list不能根據唯一標識進行篩選,那豈不成需要迴圈依次遍歷,考慮系統處理的資料量,這個執行起來那是相當影響程式的執行效率了,不能這樣將就啊,所以肯定能
【MySQL】MySQL資料庫主主備份
序: 由於公司內部伺服器使用的是普通PC機,所有發生宕機的情況比較多。尤其是發生過幾次災難後整機需要重新安裝系統,導致此係統上的MySQL資料無法使用。所以再經過此次問題後搭建了MySQL主主備份。 0x01:環境 環境:MySQL(5.7) 系統:Windows 10(1
【Windows】【MySQL】Windows下MySQL資料庫利用mysqldump定時備份並刪除N天前的備份資料
1.新建.bat檔案 內容如下: rem ******MySQL backup start******** @echo off set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%" if not exist "D:\backup\%Ymd%" m
【gp資料庫】查詢函式中引用資料表資訊
函式指令碼寫得多了,再想統計整理用到的表資訊十分麻煩。甚至存在歷史資料表不再使用的情況,所以需要根據條件對函式引用表資訊進行統計。本篇介紹我常用的指令碼。 1. 查詢某資料表在哪些函式中引用過 select proname from pg_proc w
【mysql】資料型別選擇
一Mysql 資料型別選擇 1.1 Char與varchar 由於char是固定長度的,所以存取速度比varchar快。缺點是浪費儲存空間,程式需要對行尾進行處理,所以對那些長度變化不大,並且對查詢速度有較高要求的資料可以通過char來存取。當然這個也是由
【python】關於函式遞迴使用 return 後,收到資料為 None
在寫一個輾轉相除求最小公因數的程式的時候,突然發現自己不管怎麼寫(除了兩數恰巧可以整除),return 返回的值恆為 none。 程式碼為此: 1 def gcd(a,b): 2 if a%b==0: 3 return b 4 else
【mysql】獲取mysql中不重複的資料
假設情景如下: user_table的欄位如下: keyword \t c_time \t heat keyword是字串的具有重複性的,c_time表示的是時間,heat是整形常數。 如下所示: 程式碼如下: select keyword, max(created
【SQL】ORACLE更新多行資料,利用decode函式,對應關係,改資料
需求如下: 資料庫如下: 要求上面移動,資料庫作對應改變。。。用decode函式,可以一條SQL改變三條語句。 實際執行SQL如下: UPDATE CC_SYS_FRAME SET FRAME_LEVEL = decode(FRAME_NAME, '裝置',1 ,
【mysql】sql刪除多個欄位重複資料有主鍵和沒主鍵解決方法
table user name age nub 張三 12 23 張三 12 23 張三 12 23 李四 13 21 李四 13 21 王五 11 25
【MySQL】MySQL資料型別寬度
MySQL中整數資料型別 上圖:MySQL的整數型別 MySQL中資料型別的顯示寬度 顯示寬度只是指明MYSQL最大可能顯示的數字個數,數值的位數小於指定的寬度時會有空格填充,取
【MySQL】常見的業務處理-刪除重複資料
業務場景 日常工作中我們經常會遇到這樣的場景刪除資料庫中某個表中重複的資料。現在以一個案例驅動。 需求:刪除評論表中同一訂單同一商品的重複評論,只保留最早的一條。 上圖是商品評論表
【mysql】mysql插入中文資料變成問號怎麼處理
插入中文資料變成問號,一般都是因為字符集沒有設定成utf8的原因 1、修改字符集: ALTER TABLE 表名 MODIFY 列名 型別(50) CHARACTER SET "utf8"; 如:ALTER TABLE t_student MODIFY stuName
【mysql】mysql(一)查資料
查詢上面這種表:1.查詢表中所有資料:MariaDB [test]> select * from bug;2.查詢系統為11.3的bug列表:MariaDB [test]> select * from bug where system="iOS11.3";3.設定
【MySQL】資料庫主主備份
參考資料 我們先以A伺服器為起點,配置它的資料庫同步到B。這就是主-從複製了。 之後再反過來做一次,就可以互相備份了。 熱備份的條件 (1) mysql的版本都要高於3.2。 (2) 兩者資料庫版本相同。 (3) 主主備份相當於在原先主從備份
【mysql】向mysql資料庫批量插入資料(迴圈)
錯誤插入delimiter $$ create procedure pr() begin declare i int; set i=5000; while i<6000 do insert into assisted_material (id,name,edition
【mysql】查詢本月和去年同期資料SQL
思路 首先將資料來源中的日期欄位,使用日期格式化函式,格式化為Y-M的形式 增加一列,使用日期格式化函式,獲取去年的月份資訊,命名為LAST_DATE 對同一個檢視,進行左連線,獲取當月的金額以及去
【MySQL】使用Symbolic Links以支援資料分割槽儲存
MySQL資料庫及表(僅MyISAM)支援符號連結(symbolic link),即資料庫或表可以儲存在my.cnf中指定datadir之外的分割槽或目錄。 要支援符號連結,需要在配置中設定symbolic-links=1(較新的版本為預設開啟) 假設my.cnf有設
【mysql】mysql concat函式與SQL注入
例如:原本查詢語句是 select username,email,content from test_table where user_id=uid;其中uid,是使用者輸入的。正常顯示結果會出現使用者名稱,使用者郵箱,使用者留言內容。但是如果uid過濾不嚴,我們可以構造如下SQL語句來獲得任意資