- 鎖表處理
https://www.cnblogs.com/pugang/p/13275696.html - 儲存過程
https://zhuanlan.zhihu.com/p/137896709 - 聯(lián)合索引失效
https://blog.csdn.net/qq_35275233/article/details/87888809
實際操作
- 更新表
SET t1.column1 = (SELECT t2.column1 FROM table2 t2 WHERE t2.id = t1.id),
t1.column2 = (SELECT t2.column2 FROM table2 t2 WHERE t2.id = t1.id)
WHERE EXISTS (SELECT 1 FROM table2 t2 WHERE t2.id = t1.id);
SET (A1, A2, A3) = (SELECT B1, B2, B3 FROM B WHERE A.ID = B.ID)
- substr
格式1: substr(string string, int a, int b);
格式2:substr(string string, int a) ;
解析:
格式1:
1比搭、string 需要截取的字符串
2琳状、a 截取字符串的開始位置(注:當a等于0或1時苦蒿,都是從第一位開始截却亟痢)
3妈拌、b 要截取的字符串的長度
格式2:
1、string 需要截取的字符串
2箫踩、a 可以理解為從第a個字符開始截取后面所有的字符串哎迄。
- instr
instr('源字符串' , '目標字符串' ,'開始位置','第幾次出現(xiàn)')
- select時做邏輯處理
SELECT IF(TRUE,1+1,1+2);
-> 2
SELECT IF(FALSE,1+1,1+2);
-> 3
SELECT IF(STRCMP("111","222"),"不相等","相等");
-> 不相等
-- 查找出售價為 50 的書,如果是 java 書的話斤蔓,就要標注為 已售完:
select *,if(book_name='java','已賣完','有貨') as product_status from book where price =50
SELECT IFNULL(NULL,"11");
-> 11
SELECT IFNULL("00","11");
-> 00
SELECT t.status,
CASE t.status
WHEN '失敗' THEN '捕獲失敗'
ELSE '捕獲成功' END "legendValue"
- 對大字段做模糊搜索
效率不高植酥,可以對大字段進行處理 - 對日期進行處理
| 表頭 | 表頭 |
| ---- | ---- |
| date格式 | to_char,format格式是yyyy-MM-dd 或者yyyyMMdd都可以附迷,加上時分秒也可以 |
| timestamp格式 | 單元格 |
| date String格式 | 直接to_date惧互,format格式就看是源格式,如果to_date(20240313喇伯, ‘yyyyMMdd’)喊儡, 那么出來的格式是 2024-03-13 00:00:00 |
| timestamp String格式 | 2024-03-13 00:00:00.000,先substr截取1,19稻据,然后to_date |
| date格式 | 單元格 |
| timestamp格式 | 單元格 |