sql 函式一些函式
left(str,len)
right(str,len)
locate(substr,str)
substr(str from pos for len)
一、sql 函式
left(str,len)
left:從左提取所要字元
用法:left(字串對應列名,從左數擷取所需字元位置)
ringht:與用法與left一致
right(str,len)
用法:left(所需的對應列名,從右數擷取所需字元位置)
//從左擷取第一位字元
select left(salary,1),salary from dataanalyst_sql;
//從右擷取第一位字元
select right(salary,1),salary from dataanalyst_sql;
//從左擷取4個字元
select left(salary,4),salary from dataanalyst_sql;
只顯示left(salary,1)列
select left(salary,1) from dataanalyst_sql;
locate(substr,str)
locate:定位某一字元位置,返回對應字元位置(定位,查詢字元所在在整字串的位置)
用法:locate('查詢的字串',對應列名,從字串中第幾個位置開始查詢)
locate('查詢的字串',對應列名) //不寫預設第一位開始
ps:只能查詢一次乙個
//從salary列第三位置開始找'k'在該列的位置
select left(salary,1),locate('k',salary,3), salary
from
dataanalyst_sql;
//預設從第一位開始找『k』
select left(salary,1),locate('k',salary), salary
from
dataanalyst_sql;
//結合用:拆分列,擷取薪資上限
select left(salary,locate('k',salary)-1), salary
from
dataanalyst_sql;
//方法一:提取工資下限。
select right(salary,locate('-',salary)-1), salary
from
dataanalyst_sql;
k仍在方法二
利用兩次left函式擷取,
select
left(salary,locate('k',salary)-1),
locate('-',salary),
length(salary), //計算salary列字元長度
//length(salary)-locate('-',salary) 等於右邊長度(下限工資)
right(salary,length(salary)-locate('-',salary)), //擷取下限工資,並把它當成乙個新的列
//left(salary,locate('k',salary)-1)
//salary=right(salary,length(salary)-locate('-',salary))
//length(salary)-locate('-',salary)-1 /left需要擷取的長度
left(right(salary,length(salary)-locate('-',salary)),length(salary)-locate('-',salary)-1),
salary
from
dataanalyst_sql;
//新手分步驟寫
substr()substr(字串,在字元哪個位置開始,需要擷取長度)
substr(str,pos,len) 就是從pos開始的位置,擷取len個字元(空白也算字元)
sbustr(字串,在字元哪個位置開始)
sbustr(str,pos) 就是從pos開始的位置,一直擷取到最後。
select
left(salary,locate('k',salary)-1),
locate('-',salary),
length(salary),
substr(salary,'-',length(salary)-length(salary)),
salary
from
dataanalyst_sql;
二階sqli注入
通過對客戶端提交的資料進行嚴格的審查是有效避免sql注入的方法,但是一旦輸入的資料存入到資料庫之後,對這些資料的使用往往沒有做嚴格的檢查,但是對這些資料的操作往往具有很高的許可權,在使用這些資料再進行sql查詢或者sql寫操作的時候,很可能造成嚴重的sql注入,例如 使用者建立了乙個賬戶john 對...
C 二階構造
1.如何判斷建構函式的執行結果?目前無法判斷 2.在建構函式中執行return語句會發生什麼?建構函式直接 返回,執行結束 3.建構函式執行結束是否意味著物件構造成功?不 include class test int geti int getj int status int main return ...
Pocket Cube二階魔方
hdu5983的一道題,看錯了輸入,看了題解發現用一位陣列存比較方便。開兩個24的陣列存完直接暴力交換就完事了,搞了兩個小時,才發現這麼簡單,真是自閉魔方。include using namespace std int a 30 b 30 int isok return1 void cpy intm...