search函數(shù)查找多個(gè)數(shù)據(jù) javascript獲取url參數(shù)和script標(biāo)簽中獲取url參數(shù)函數(shù)代碼?
javascript獲取url參數(shù)和script標(biāo)簽中獲取url參數(shù)函數(shù)代碼?通過(guò)使用可以獲取到當(dāng)前URL的?號(hào)開(kāi)始的字符串,如前面的鏈接獲取到的search為?id001,再對(duì)獲取的字符串進(jìn)行處理,
javascript獲取url參數(shù)和script標(biāo)簽中獲取url參數(shù)函數(shù)代碼?
通過(guò)使用可以獲取到當(dāng)前URL的?號(hào)開(kāi)始的字符串,如前面的鏈接獲取到的search為?id001,再對(duì)獲取的字符串進(jìn)行處理,就可以獲取到參數(shù)的值了,參考代碼如下: function getUrlParam(name) { var reg new RegExp(
excel判斷是否包含字符?
1打開(kāi)Excel數(shù)據(jù)表,將A列中含有“肉”字的單元格快速找出來(lái)。
2首先,選擇含有數(shù)據(jù)的單元格區(qū)域,將A列中有數(shù)據(jù)的單元格全選中。
3然后點(diǎn)擊菜單欄中“開(kāi)始”選項(xiàng)卡中的“條件格式”、“突出顯示單元格規(guī)則”、“文本包含”。
4在彈出的對(duì)話(huà)框輸入要查找的字符“肉”,然后格式可以自定義,也可以使用系統(tǒng)默認(rèn)的格式。
5點(diǎn)擊“確定”,也可以看到A列選擇的區(qū)域中含有指定字符的單元格就被標(biāo)識(shí)出來(lái),這樣就可以快速找出了。
mysql中怎樣對(duì)大批量級(jí)的數(shù)據(jù)查詢(xún)進(jìn)行優(yōu)化?
MySQL 一直以來(lái)都支持正則匹配,不過(guò)對(duì)于正則替換則一直到MySQL 8.0 才支持。對(duì)于這類(lèi)場(chǎng)景,以前要么在MySQL端處理,要么把數(shù)據(jù)拿出來(lái)在應(yīng)用端處理。
比如我想把表y1的列str1的出現(xiàn)第3個(gè)action的子 串替換成dble,怎么實(shí)現(xiàn)?
1. 自己寫(xiě)SQL層的存儲(chǔ)函數(shù)。代碼如下寫(xiě)死了3個(gè),沒(méi)有優(yōu)化,僅僅作為演示,MySQL 里非常不建議寫(xiě)這樣的函數(shù)。
mysql
DELIMITER $$
USE `ytt`$$
DROP FUNCTION IF EXISTS `func_instr_simple_ytt`$$
CREATE DEFINER`root`@`localhost` FUNCTION `func_instr_simple_ytt`(
f_str VARCHAR(1000), -- Parameter 1
f_substr VARCHAR(100), -- Parameter 2
f_replace_str varchar(100),
f_times int -- times support 3.
) RETURNS varchar(1000)
BEGIN
declare v_result varchar(1000) default ytt -- result.
declare v_substr_len int default 0 -- search string length.
set f_times 3 -- only support 3.
set v_substr_len length(f_substr)
select instr(f_str,f_substr) into @p1 -- First real position .
select instr(substr(f_str,@p1 v_substr_len),f_substr) into @p2 Secondary virtual position.
select instr(substr(f_str,@p2 @p1 2*v_substr_len - 1),f_substr) into @p3 -- Third virtual position.
if @p1 gt 0 ampamp @p2 gt 0 ampamp @p3 gt 0 then -- Fine.
select
concat(substr(f_str,1,@p1 @p2 @p3 (f_times - 1) * v_substr_len - f_times)
,f_replace_str,
substr(f_str,@p1 @p2 @p3 f_times * v_substr_len-2)) into v_result
else
set v_result f_str -- Never changed.
end if
-- Purge all session variables.
set @p1 null
set @p2 null
set @p3 null
return v_result
end
$$
DELIMITER
-- 調(diào)用函數(shù)來(lái)更新:
mysqlgt update y1 set str1 func_instr_simple_ytt(str1,action,dble,3)
Query OK, 20 rows affected (0.12 sec)
Rows matched: 20 Changed: 20 Warnings: 0
2. 導(dǎo)出來(lái)用sed之類(lèi)的工具替換掉在導(dǎo)入,步驟如下:(推薦使用)1)導(dǎo)出表y1的記錄。
mysqlmysqlgt select * from y1 into outfile /var/lib/mysql-files/y1.csvQuery OK, 20 rows affected (0.00 sec)
2)用sed替換導(dǎo)出來(lái)的數(shù)據(jù)。
:/var/lib/mysql-files# sed -i s/action/dble/3 y1.csv
3)再次導(dǎo)入處理好的數(shù)據(jù),完成。
mysql
mysqlgt truncate y1
Query OK, 0 rows affected (0.99 sec)
mysqlgt load data infile /var/lib/mysql-files/y1.csv into table y1
Query OK, 20 rows affected (0.14 sec)
Records: 20 Deleted: 0 Skipped: 0 Warnings: 0
以上兩種還是推薦導(dǎo)出來(lái)處理好了再重新導(dǎo)入,性能來(lái)的高些,而且還不用自己費(fèi)勁寫(xiě)函數(shù)代碼。那MySQL 8.0 對(duì)于以上的場(chǎng)景實(shí)現(xiàn)就非常簡(jiǎn)單了,一個(gè)函數(shù)就搞定了。
mysqlmysqlgt update y1 set str1 regexp_replace(str1,action,dble,1,3) Query OK, 20 rows affected (0.13 sec)Rows matched: 20 Changed: 20 Warnings: 0
還有一個(gè)regexp_instr 也非常有用,特別是這種特指出現(xiàn)第幾次的場(chǎng)景。比如定義 SESSION 變量@a。
mysqlmysqlgt set @a aa bb cc ee fi lucy 1 1 1 b s 2 3 4 5 2 3 5 561 19 10 10 20 30 10 40Query OK, 0 rows affected (0.04 sec)
拿到至少兩次的數(shù)字出現(xiàn)的第二次子串的位置。
mysqlmysqlgt select regexp_instr(@a,[:digit:]{2,},1,2) -------------------------------------- | regexp_instr(@a,[:digit:]{2,},1,2) | -------------------------------------- | 50 | -------------------------------------- 1 row in set (0.00 sec)
那我們?cè)诳纯磳?duì)多字節(jié)字符支持如何。
mysql
mysqlgt set @a 美國(guó) 俄羅斯 日本 北京 上海 深圳 廣州 北京 上海 武漢 東莞 北京 青島 北京
Query OK, 0 rows affected (0.00 sec)
mysqlgt select regexp_instr(@a,北京,1,1)
-------------------------------
| regexp_instr(@a,北京,1,1) |
-------------------------------
| 17 |
-------------------------------
1 row in set (0.00 sec)
mysqlgt select regexp_instr(@a,北京,1,2)
-------------------------------
| regexp_instr(@a,北京,1,2) |
-------------------------------
| 29 |
-------------------------------
1 row in set (0.00 sec)
mysqlgt select regexp_instr(@a,北京,1,3)
-------------------------------
| regexp_instr(@a,北京,1,3) |
-------------------------------
| 41 |
-------------------------------
1 row in set (0.00 sec)
那總結(jié)下,這里我提到了 MySQL 8.0 的兩個(gè)最有用的正則匹配函數(shù) regexp_replace 和 regexp_instr。針對(duì)以前類(lèi)似的場(chǎng)景算是有一個(gè)完美的解決方案。