leadbbs 上ID为Robin·H的东西,有空瞧瞧....

字节跳动头条日常实习生三轮技术面经复盘与避坑指南 技术面试是检验开发者综合能力的关键环节,其核心在于对基础原理的深度理解与工程实践的灵活运用。无论是Java并发编程、MySQL索引优化,还是Redis缓存一致性,面试官往往通过层层追问来评估候选人的思维深度。掌握LRU缓存、线程池执行流程、TCP握手等高频知识点的底层逻辑,能帮助候选人在实战中快速定位问题。在互联网大厂的日常实习生招聘中,面试尤其聚焦基础扎实度与项目真实度,围绕数据结构、算法、数据库和项目细节展开系统准备尤为关键。完整复盘字节跳动头条日常实习生的三轮技术面全过程,梳理高频考点与回答思路,并总 阅读详情

1.
表结构是
ID state
1  1,5,17
2  2,8,10,17
3  2,5
......

如何查询出state中逗号分割后,指定数字的行?
例如查state中含5的行?

答
SELECT * FROM [table] WHERE CHARINDEX(',5,' , ','+[state]+',')>0
-----------------------------------------------------------------------

2
比如说,我两张表

表A是一个企业的基本信息表
字段:
id    cor_id    cor_name

表B是企业发送消息的列表

id    cor_id    message

 两张表用企业用户名相关联 ,cor-id相管理

  我如何查询出最新15个发送消息的企业的名称呢?

答
SELECT cor_name FROM cor WHERE cor_id IN (SELECT TOP 3 cor_id FROM mes GROUP BY cor_id ORDER BY MAX(ID) DESC)
------------------------------------------------------------
3
我想自动生成了一个log_no  是由SHA+year(06)+month(06)+日+(三位序号)001
现在这个功能我能实现  
但是在删除时,怎么样使得这个log_no连续呢?  
 
 
谢谢了!!!!!!!!!!!!!!!!!
答
DECLARE @ID VARCHAR(9)
SET @ID='060609008'
DELETE FROM TABLE WHERE ID=@ID
UPDATE Table
SET ID=LEFT(ID,6) + REPLICATE(0,3-LEN(CAST(SUBSTRING(ID,7,3) AS INT)-1)) + RTRIM(CAST(CAST(SUBSTRING(ID,7,3) AS INT)-1) AS CHAR(3))
WHERE LEFT(ID,6)=LEFT(@ID,6) AND CAST(SUBSTRING(ID,7,3) AS INT)>CAST(SUBSTRING(@ID,7,3) AS INT)
------------------------------------------------------------
4
如何按价格分时间段求和?
有表table1,表中数据如下
table1

Price   Date
1 2006-5-1
1 2006-5-2
1.5 2006-5-3
1.5 2006-5-4
1.5 2006-5-6
1 2006-5-7


结果:
TOTAL
2 2006-5-1-----2006-5-2
4.5 2006-5-3-----2006-5-6
1 2006-5-7-----2006-5-7
反应出价格的波动时间段了
所有数据都是按日期排好序的(不一定连续)

答
生成临时数据
----------------------------
select
1 ,'2006-5-1' union all select
1 ,'2006-5-2' union all select
1.5 ,'2006-5-3' union all select
1.5 ,'2006-5-4' union all select
1.5 ,'2006-5-6' union all select
1 ,'2006-5-7' union all select
1,'2006-5-8' union all select
2,'2006-5-9'

存入临时表#tb,目的是生成唯一的标识号id,以便后面处理
-------------------------------------------------
select price,date,identity(int) id into #tb from @t


查询所需数据.
--------------------------------------------
select id,price,date,hasBefore=(select count(1) from #tb b where b.price=a.price and b.id=a.id-1)  into #base from #tb a
select price,date=min(date) + '--' + max(date) from (select price ,date,far=(case hasBefore when 0 then id else (select max(x.id) from #base x where x.price=b.price and x.id<b.id and x.hasBefore=0) end) from #base b) base group by price,far


显示结果
-------------------------------
1.02006-5-1--2006-5-2
1.52006-5-3--2006-5-6
1.02006-5-7--2006-5-8
2.02006-5-9--2006-5-9

-------------------------------------------------------------------------------

5
我有一张几十万条记录的表,其中有company,address,companyid三个字段。
现在想将company,address相同内容记录的companyid更新成一个相同的。
以前companyid都不相同。不想用循环更新,因为那样速度太慢了,
哪位大哥能通过一条语句实现上述功能啊。主要是速度。小弟先谢谢了

答
update tbb set companyid=id from (select min(companyid) id,company c,address a from tbb group by company,address) base where a=address and c=company
----------------------------------------------------------------------------------
6
在表连接的SELECT语句中经常要对引用的列加上各自的表别名,例如:
SELECT a.colx,b.coly FROM table1 AS a ,table2 AS b WHERE a.name = b.name
但是,不能再对含有表别名的列赋常量值,例如不能这样:
SELECT a.colx = 常量,b.coly FROM table1 AS a,table2 AS b WHERE a.name = b.name
甚至也不能这样:
SELECT a.colx = 常量 FROM table1 AS a

请教大家解决的办法,多谢!

答
加标识符就可以了.
[a.aname]='xxxx'
--------------------------------------------------------------------------------------
7
我有一个表:
名称       数量
TT           11
BB           12
TT           13
DD           14
BB           15

得出来的结果是
TT          24
BB          27
TT          24
DD          14
BB          27

答
SELECT 名称,base.数量
     FROM [table]
     LEFT JOIN
     (
           SELECT 名称,SUM(数量) AS 数量 FROM [table] GROUP BY 名称
     ) base
     ON base.名称=[table].名称
8
首先有现有的数据表A:
AA1      AA2       AA3
010      北京      5
021      上海      3
022      天津      4
023      重庆      2
。。。。
想得到另一个表B,其内容与A类似,只是没有最后一列,并且如下:
AA1      AA2
010      北京
010      北京
010      北京
010      北京
010      北京
021      上海
021      上海
021      上海
022      天津
022      天津
022      天津
022      天津
023      重庆
023      重庆
。。。。
即所得到的B表,相应记录的内容与A相同,但B表中记录的行数取决于A表中AA3的数值。

答
----生成临时数据
DECLARE @A Table
(AA1Char(3),
 AA2Nvarchar(10),
 AA3Int)
Insert @A Select '010',      N'北京',      5
Union All Select '021',      N'上海',      3
Union All Select '022',      N'天津',      4
Union All Select '023',      N'重庆',      2

----定义递规查询变量
DECLARE @City VARCHAR(8000)
SET @City=''

SELECT @City=@City + REPLICATE(AA2 + ',',AA3) FROM @A
SELECT @City=LEFT(@City,LEN(@City)-1)

----生成结果数据
SELECT AA1,a FROM dbo.Split(@City,',') INNER JOIN @A ON AA2=a


----附Split函数
CREATE Function Split(@Sql varchar(8000),@Splits varchar(10))
returns @temp Table (a varchar(100))
As
Begin
Declare @i Int
Set @Sql = RTrim(LTrim(@Sql))
Set @i = CharIndex(@Splits,@Sql)
While @i >= 1
Begin
Insert @temp Values(Left(@Sql,@i-1))
Set @Sql = SubString(@Sql,@i+1,Len(@Sql)-@i)
Set @i = CharIndex(@Splits,@Sql)
End

If @Sql <> ''
Insert @temp Values (@Sql)
Return
End
-------------------------------------------------------------------------

9
本人要sql后台写一个单据的存储过程,其中有一段是求两个数相除的绝对值,代码如下abs(((select isnull(camount,0) from #tmp_B where id=@i-1)-isnull(jamount,0)+isnull(damount,0))/((select isnull(cquantity ,0) from #tmp_B where id=@i-1)-isnull(jquantity,0)+isnull(dquantity,0)))。这个表达式有一种可能时不成立,哪就是当除数是0时,请教各位当((select isnull(cquantity ,0) from #tmp_B where id=@i-1)-isnull(jquantity,0)+isnull(dquantity,0))为0即除数为0时,如何将这个除数变为1。
答
不太喜欢用CASE WHEN,某些时候用函数更有效.
将某个变量为特定值时指定为其它值的写法:
比如当a 为0时要求a为1,其它时候为他本身.那么
DECLARE @a INT
SET @a=1
SELECT ISNULL(NULLIF(@a,0),1)
-----------------------------------------------------------

10
对一个已经存在的表格操作:

假设一个表是3行3列,先按列乘 再按行加

例如
table
sm1  sm2  sm3 sm4  sm5
 1    2    3   3    3  
 3    3    6   5    4
 4    4    5   2    2
 3    3    6   4    2
要求的到一下结果:

1*2*3*3*3+3*3*6*5*4+4*4*5*2*2+3*3*6*4*2
答
create table tb(sm1 int,sm2 int,sm3 int, sm4 int,sm5 int)
insert tb
select 1,2,3,3,3  union all
select 3,3,6,5,4  union all
select 4,4,5,2,2  union all
select 3,3,6,4,2
declare @s varchar(1024)
set @s=''
select @s=@s+rtrim(cast(sm1 as char(10))) + '*' + rtrim(cast(sm2 as char(10))) + '*' + rtrim(cast(sm3 as char(10))) + '*' + rtrim(cast(sm4 as char(10))) + '*' + rtrim(cast(sm5 as char(10))) from tb
print @s
----------------------------------------------------------------


11
select * from ad_hits where ad_id = '131' and year(hits_date) = '2006' and
month(hits_date) = '6' order by hits_date
======================================================
用上面的搜索语句,得到下面的结果..
1312006-06-01 00:00:001
1312006-06-02 00:00:002
1312006-06-03 00:00:001
1312006-06-05 00:00:002
1312006-06-06 00:00:005
1312006-06-07 00:00:001
1312006-06-10 00:00:001
1312006-06-14 00:00:002
==================================
我想得到这样的结果..
1312006-06-01 00:00:001
1312006-06-02 00:00:002
1312006-06-03 00:00:001
1312006-06-04 00:00:000
1312006-06-05 00:00:002
1312006-06-06 00:00:005
1312006-06-07 00:00:001
1312006-06-08 00:00:000
1312006-06-09 00:00:000
1312006-06-10 00:00:001
1312006-06-11 00:00:000
1312006-06-12 00:00:000
1312006-06-13 00:00:000
1312006-06-14 00:00:002

就是,如果当天的点击数为O则自动列出为0记录...

答
--生成测试数据
DECLARE @tb TABLE(ID INT,YourDate DATETIME,NUM INT)
INSERT @tb
SELECT
131,'2006-06-01 00:00:00',1
UNION SELECT
131,'2006-06-02 00:00:00',2
UNION SELECT
131,'2006-06-03 00:00:00',1
UNION SELECT
131,'2006-06-05 00:00:00',2
UNION SELECT
131,'2006-06-06 00:00:00',5
UNION SELECT
131,'2006-06-07 00:00:00',1
UNION SELECT
131,'2006-06-10 00:00:00',1
UNION SELECT
131,'2006-06-14 00:00:00',2


--生成临时数据
DECLARE @MinDate Datetime,@MaxDate Datetime
SELECT @MinDate=MIN(YourDate),@MaxDate=MAX(YourDate) FROM @tb
DECLARE @Tmp Table(Num1 INT,TmpDate DateTime,Num2 INT)
WHILE @MinDate<@MaxDate
BEGIN
INSERT @Tmp VALUES(131,DATEADD(dd,1,@MinDate),0)
SET @MinDate=DATEADD(dd,1,@MinDate)
END

--显示所需结果
SELECT * FROM @tb
UNION
SELECT * FROM @Tmp WHERE TmpDate NOT IN(SELECT YourDate FROM @tb)
-------------------------------------------------------------------------
12
有个字段存放的是访问URL的记录,有url和参数,象这样
http://www.163.com/news/sports.asp?title=aaa&author=bbb
现在我想把它拆成url,参数和参数值对,该怎么弄呢?
就这样:
http://www.163.com/
/news/sports.asp
title aaa
author bbb
答
DECLARE @s VARCHAR(1024),@Domain CHAR(100),@Path CHAR(100),@UrlWithoutPm CHAR(200),@Pm CHAR(200)
SET @s='http://www.163.com/news/sports.asp?title=aaa&author=bbb'
SET @UrlWithoutPm=LEFT(@s,CHARINDEX('?',@s)-1)
SET @Pm=REPLACE(@s,RTRIM(@UrlWithoutPm)+'?','') + '&x'
SET @Domain=LEFT(@UrlWithoutPm,CHARINDEX('/',REPLACE(@UrlWithoutPm,'http://',''))+6)
SET @Path=REPLACE(@UrlWithoutPm,@Domain,'')
DECLARE @tb TABLE(aaa CHAR(100))

WHILE CHARINDEX('&',@Pm)>0
BEGIN
INSERT @tb SELECT REPLACE(LEFT(@Pm,CHARINDEX('&',@Pm)-1),'=',' ')
SET @Pm=SUBSTRING(@Pm,CHARINDEX('&',@Pm)+1,LEN(@Pm))

END

SELECT @Domain
SELECT @Path
SELECT aaa FROM @tb



--写成函数的的话
CREATE FUNCTION fn_SplitURL(@s VARCHAR(1024))
RETURNS @spu TABLE(item CHAR(200))
AS
BEGIN
DECLARE @Domain CHAR(100),@Path CHAR(100),@UrlWithoutPm CHAR(200),@Pm CHAR(200)
SET @UrlWithoutPm=LEFT(@s,CHARINDEX('?',@s)-1)
SET @Pm=REPLACE(@s,RTRIM(@UrlWithoutPm)+'?','') + '&x'
SET @Domain=LEFT(@UrlWithoutPm,CHARINDEX('/',REPLACE(@UrlWithoutPm,'http://',''))+6)
SET @Path=REPLACE(@UrlWithoutPm,@Domain,'')
DECLARE @tb TABLE(aaa CHAR(100))

WHILE CHARINDEX('&',@Pm)>0
BEGIN
INSERT @tb SELECT REPLACE(LEFT(@Pm,CHARINDEX('&',@Pm)-1),'=',' ')
SET @Pm=SUBSTRING(@Pm,CHARINDEX('&',@Pm)+1,LEN(@Pm))

END
INSERT @spu
SELECT @Domain
UNION
SELECT @Path
UNION
SELECT aaa FROM @tb
RETURN
END

SELECT * FROM dbo.fn_SplitURL('http://www.sina.com/aa/bb.asp?ddd=1&ccc=2')

13
MS SQL server2000数据库,表中有一个字段,类型为:nvarchar ,实际上里面存储的应该全都是数字记录,但是数据库建立较早,早期有一些非数字记录(如汉字 半,一 等)保存进去了!

因为现在要根据这个字段进行排序,因为是nvarchar型的,所以排序的时候很乱,比如按降序排列时,明明20比3大,但排序的时候3会排到20的前面,可能是因类字段类型的问题,于是想将其类型改为int型,但是里面包含一些非数字记录,更改时出错!

可不可以用一条SQL语句将非数字记录全部更新成为一个数字(1或2),或是干脆删除掉这些记录?
不过Isnumeric有点问题,会漏掉一些数据
比如2d,2e等等
答
declare @t table(id nvarchar(10))
insert @t select N'123'
union all select N'234'
union all select N'a3'
union all select N'ta3'
union all select N'2d'
union all select N'2e'
select * from @t

select * from @t where id like '[0-9][de]' or isnumeric(id)=1

将不是数字的更新为1的写法是
update @t set id=1 where not (id like '[0-9][de]' or isnumeric(id)=1)
或者
update @t set id=1 where not id like '[0-9][de]' and not isnumeric(id)=1
-------------------------------------------------------------------

14
请哪位高手提供一段将某个字段中所有记录的地名删除掉的代码,我单位数据库中需要将"企业名称"字段中抬头的地区名删除掉,就是比如"苏州托普信息技术学院"要将"苏州"两字去掉,将所有包含"苏州"或"苏州市"或"江苏省苏州市"或"江苏省苏州"的字段中的这些字删除掉,应该如何做啊?请给出具体代码啊,谢谢!

答
--源数据表
DECLARE @tbInfo TABLE(ID INT,Info CHAR(100))
INSERT @tbInfo
SELECT 1,'苏州大学'
UNION
SELECT 2,'上海大学'
UNION
SELECT 3,'上海艺术大学'

--创建一个地名数据表
DECLARE @tbCity TABLE(City CHAR(20))
INSERT @tbCity
SELECT '苏州'
UNION SELECT '上海'
UNION SELECT '北京'


--去掉相关地名
UPDATE @tbInfo SET Info=REPLACE(Info,Bcity,'') FROM (SELECT Info Binfo ,ID,City BCity FROM @tbInfo
INNER JOIN @tbCity
ON CHARINDEX(RTRIM(City),Info)>0) B WHERE Info=Binfo

--显示去掉后的数据
SELECT * FROM @tbInfo

-----------------------------------------------------------------------
15
数据库中的字段keywords存储的字符串是用逗号分割开的,如下
ID    keywords
1     beijing,xian,shanghai
2     xian,shenzhen
3     beijing,xian
输入字符串如 str="beijing travel tours..."
如何用SQL语句实现查找出keywords中用逗号分割开的各字符串存在输入字符串中的记录
以上就应该查出ID=1,3的记录
望各位帮帮忙,谢谢了

--生成测试数据
DEClARE @tb TABLE(ID INT,Keywords CHAR(200))
INSERT @tb
SELECT
1,     'beijing,xian,shanghai'
UNION SELECT
2,     'xian,shenzhen'
UNION SELECT
3,     'beijing,xian'

--待搜索字串
DECLARE @s CHAR(200)
SET @s='beijing travel'

--显示搜索结果
SELECT ID,Keywords FROM @tb
LEFT JOIN
(SELECT ',' + a + ',' k FROM dbo.Split(@s,' ')) b
ON CHARINDEX(k,','+Keywords+',')>0 WHERE ISNULL(k,'')<>''

附Split函数

CREATE Function Split(@Sql varchar(8000),@Splits varchar(10))
returns @temp Table (a varchar(100))
As
Begin
Declare @i Int
Set @Sql = RTrim(LTrim(@Sql))
Set @i = CharIndex(@Splits,@Sql)
While @i >= 1
Begin
Insert @temp Values(Left(@Sql,@i-1))
Set @Sql = SubString(@Sql,@i+1,Len(@Sql)-@i)
Set @i = CharIndex(@Splits,@Sql)
End

If @Sql <> ''
Insert @temp Values (@Sql)
Return
End

--------------------------------------------------------------------
16
有表t1  表t1里面有UID字段,并且是可重复的
T1
uid   count
001   32.7
002   45.2
001   44.0
002   84.6
009   75.4
005   74.2
要求是 用一条语语实实现 uid等于 001,002,005的字段count的各个总和
答
SELECT uid,SUM([count]) FROM [table] WHERE uid IN('001,002,005') GROUP BY uid
----------------------------------------------------------------------

17
大家好!
    我有一个数据库表catalog,有两个重要字段ID,parentID(parentID为ID对应的父类),这个类别可以无限级的分下去.
    现在有个问题比较困惑,我想写一个用户定义函数GetAllCataID( cataID int ),想返回一个指定ID下的所有子类,不知怎么写?
    参于有分,答对有高分!
    在线急等.......
答
DECLARE @tb TABLE(id INT,parentid INT)
INSERT @tb
SELECT 1,0
UNION
SELECT 2,1
UNION
SELECT 3,2
UNION SELECT
4,0
UNION SELECT
5,4
DECLARE @path VARCHAR(1024),@curid INT
SET @curid=1  --你要查询的根节点
SET @path=''
WHILE EXISTS(SELECT * FROM @tb WHERE parentid=@curid)
     BEGIN
     SELECT @path=@path + ' ' + RTRIM(id),@curid=id FROM @tb WHERE parentid=@curid
     END
PRINT @path
-----------------------------------------
18
declare @columname char(10)
set @columname=convert(char(10),getdate(),20)
exec('alter table abcd
add ['@columname'] int')

请问以上语句哪儿有问题啊?
一运行就说“第4行:‘@columname’附近有语法错误”
但我实在不知到错在哪儿了,请高手指点一下!
答
楼主的写法错误是因为:

declare @columname char(10)
set @columname=convert(char(10),getdate(),20)
exec('alter table abcd
add ['@columname'] int')

@columname是在这里声明的,而编译动态SQL语句时,因为主代码与 exec中所执行的代码级别不同,编译不在同一空间,对于exec中的那段代码来说@columname是没有声明过的变量.
19
有表A,B
A:
id     qty
1       12
2       13
3       14
4       15
5       16

B:
id      dept      qty
1      a      11
1      b      12
1       b       12
2      a      13
4      c      14


求结果:
id     qty      dept_A_qty      detp_B_qty      dept_C_qty
1       12      11            24(12+12)      0
2       13      13            0            0
3       14      0            0            0
4       15      0            0            14
5       16      0            0            0

其中表B中的dept可能的会很多,有n种类型,就要在结果中多添加n个字段

答
create table A(id int,qty int)
insert a select 1,12
union all select 2,13
union all select 3,14
union all select 4,15
union all select 5,16

create table B(id int,dept varchar(20),qty int)
insert b
select 1,'a',11
union all select 1,'b',12
union all select 1,'b',12
union all select 2,'a',13
union all select 4,'c',14


DECLARE @f VARCHAR(1024),@f1 VARCHAR(1024)
SET @f=''
SET @f1=''

SELECT @f=@f + ',dept_' + dept + '_qty=(SELECT SUM(s.qty) FROM B s WHERE s.dept=b.dept and s.dept=''' + dept + ''' and s.id=a.id)' FROM B GROUP BY dept
SELECT @f1=@f1 + ',ISNULL(MAX(dept_' + dept +'_qty),0)' FROM B  GROUP BY dept
SELECT @f='SELECT a.id id,a.qty qty' + @f + ' FROM A a LEFT JOIN B b ON a.id=b.id'
SELECT @f='SELECT id,qty' + RTRIM(@f1) + 'FROM (' + @f + ') base GROUP BY id,qty'


EXEC (@f)

DROP TABLE A
DROP TABLE B

result:

1      12      11      24      0
2      13      13      0      0
3      14      0      0      0
4      15      0      0      14
5      16      0      0      0
在计算值时用CASE WHEN写法会简便很多,我是直写的,有点烦琐,另外效率上也不是很高,楼主自行改一下吧
--------------------------------------------------------------------------------------

20
现有如下表结构
 ------------------
|userid    roleid |
|------------------
|38      14|      |
|211      64|48|   |
|212      14|      |
|213      14|      |
|214      14|      |
|215      14|      |
|224      14|      |
-------------------
要求把64|48| 变成2条记录,其他的保留,如下
 ------------------
|userid    roleid |
|------------------
|38      14|      |
|211      64|      |
|211     48|      |
|212      14|      |
|213      14|      |
|214      14|      |
|215      14|      |
|224      14|      |
-------------------
前面可以加一列ID,自动编号
谢谢了!

答
CREATE TABLE u (userid int,roleid char(100))
INSERT u (userid,roleid)
SELECT           38,      '14|      |'
UNION SELECT 211,      '64|48|   |'
UNION SELECT 212,      '14|      |'
UNION SELECT 213,      '14|      |'
UNION SELECT 214,      '14|      |'
UNION SELECT 215,      '14|      |'
UNION SELECT 224,      '14|      |'



DECLARE @r VARCHAR(1024)
SET @r=''
SELECT @r=RTRIM(@r) + RTRIM(roleid)FROM u


SELECT a.userid,b.roleid,IDENTITY(INT) NewID INTO #TMP FROM u a
INNER JOIN
     (SELECT tempColumn as roleid FROM dbo.Split(@r,'|') WHERE RTRIM(tempColumn)<>'') b
     ON CHARINDEX('|'+b.roleid + '|','|'+a.roleid)>0 GROUP BY a.userid,b.roleid
TRUNCATE TABLE u
--ALTER TABLE doc_exa ADD column_b VARCHAR(20) NULL
ALTER TABLE u ADD NewID INT NULL
INSERT u SELECT * FROM #tmp
SELECT * FROM u
DROP TABLE #tmp

DROP TABLE u

附split函數
CREATE Function Split(@Sql varchar(8000),@Splits varchar(100))
returns @temp Table (tempColumn varchar(100))
As
Begin
Declare @i Int
Set @Sql = RTrim(LTrim(@Sql))
Set @i = CharIndex(@Splits,@Sql)
While @i >= 1
Begin
Insert @temp Values(Left(@Sql,@i-1))
Set @Sql = SubString(@Sql,@i+len(@Splits),Len(@Sql)-@i)
Set @i = CharIndex(@Splits,@Sql)
End
If @Sql <> ''
Insert @temp Values (@Sql)
Return
End
------------------------------------------------------------
数据库加密算法 出参解密拦截器,拦截 handleResultSets 对出参数据进行解密。入参加密拦截器,拦截的setParameters 入参方法对字段进行加密。IEncryptor 接口:定义加密算法类型、加密、解密方法。可以自行指定下面的属性,如果不指定则使用上面的yml配置。其集成的抽象类实现了IEncryptor 接口。编写实体类使用注解标注加密字段。加密管理类,缓存加解密字段。编写 mapper接口。 阅读详情

相关推荐

巧用with as 对sql语句多次利用

对于需重复查询的sql语句,可巧用with as 对sql语句进行精简,提高查询效率

sql 字段数据添加、更换 操作

1. 替换                 UPDATE [dbo].[behavior] SET [visit_datatime] =replace([visit_datatime],'月','') 2. 添加                 create table test0429                (                    No int IDENTIT

guomeiran的专栏 703

LTE随机接入实战:如何通过PRACH前导码优化小区覆盖半径(附计算公式)

本文深入探讨了LTE网络中PRACH前导码格式对小区覆盖半径的关键影响。通过解析不同前导码格式(如Format 0-3)的物理参数与覆盖能力,提供了核心计算公式与实战Python脚本,指导网络工程师根据覆盖需求、环境多径和容量等因素,科学选择前导码格式以优化边缘用户接入成功率,实现精准的网络规划与优化。

qq_27496129的博客 575

文件的读写基本操作

一、文件是计算机中数据持久化存储的表现形式 读写文件标准操作格式1: 1、打开文件:file1 = open('文件名','读写模式') 2、操作文件 3、关闭文件:file1.close() 文件操作完毕后必须关闭,否则长期保持对文件的连接状态,造成内存溢出的现象发生 读写文件操作格式2: # 1、打开文件 file1 = open('demo.txt','w') # 2、操作文件 file1.write('hello world') # 3、关闭文件 file1.close() 1、打开文件:wi

范高伦的博客 1万+

别再只用跳层连接了!手把手教你用DASI和MDCR模块提升红外小目标检测精度

本文详细介绍了如何利用DASI和MDCR模块提升红外小目标检测精度。通过分析传统跳层连接的缺陷,提出维度感知的特征选择性融合(DASI)和多尺度感受野精炼器(MDCR)的创新方案,显著提升小目标检测性能。实验证明,该方法在多个场景下AP@0.5提升达15.4%,特别适用于安防监控和遥感图像分析。

weixin_28715081的博客 224

深入解析SOC芯片设计中DFT OCC与ATPG的协同优化策略

本文深入探讨了在复杂SOC芯片设计中,DFT(可测试性设计)的核心组件OCC(片上时钟控制器)与ATPG(自动测试向量生成)的协同优化策略。文章从基本原理出发,分析了OCC作为测试时钟管理者的关键作用,以及ATPG作为故障检测引擎的工作机制,并重点阐述了二者在测试架构选择、参数对齐、低功耗测试等场景下的协同方法与实战技巧,旨在实现更高的测试覆盖率与更低的测试成本。

efc123456的博客 1035

SQL语句很实用很巧妙的用法

1.ignore的用法 在insert 后面加上ignore之后,如果插入的数据有重复等问题时,失败不会报错,很实用的小技巧 INSERT ignore INTO success_killed(seckill_id,user_phone,state) VALUES (#{seckillId},#{userPhone},0) 2.ifn

小秋蜀黍的博客 740

ArcGIS中地理坐标系与投影坐标系以及投影转换

简单介绍arcgis软件中坐标系定义、设置和常见问题。

weixin_41399650的博客 8万+

巧用sql进行数据累加

比如有这样一个需求,一张表格(User_Salary)包含每个人(UserName)每个月份(Month)发的薪水(Salary) 求这样一个结果集:每个人每月所发薪水及累计所得薪水和,如下表 UserName Month Salary AAA 2010/12 1000 AAA 2011/01 2000 AAA 2011/02 ...

3650

Apollo 9.0 参考线生成器 -- ReferenceLineProvider

在基于参考线的规划算法中,参考线是Planning一切工作的基础和前提,所以搞清楚参考线怎么来的就变得很重要。为此,首先需要了解Planning 与 Routing的交互,通过交互得到路径片段,这些路径片段就告诉我们该怎么走,再在此基础上生成参考线,最后使用不同的平滑算法对参考线进行平滑,得到一条光滑的参考线。

WaiNgai 1665

SwiftUI 5 教程之 SwiftData使用入门(教程含源码)

对我来说,记住日期很难。是的,您可以设置该日期的提醒,但该提醒无法产生紧迫感。让我们创建一个应用程序,我们可以在其中添加将来发生的事件。如果我们可以在主应用程序上看到所有即将发生的活动,那就太好了。也许将它们添加到小部件上以营造紧迫感。对于任何事件,我们需要跟踪哪些事情?我们将在下一篇文章中添加更多属性,其中我们将讨论迁移。现在,这就是我们所需要的。开始吧。

iCloudEnd的博客 987

20220705 union、分组查询

1.联合查询: Union:将多个查询结果合并 例:select '北京' 地区 avg(column) from Table where 城市列名='北京' Union select '武汉' 地区 avg(column) from Table where 城市列名='武汉' 注:查询结果列与数据类型相同2.分组查询Group by:分组 select avg(column) from Table Group by 城市列名 注:Group by要写在最后 Having:用聚合

lengxuan001的博客 362

2026年紫光同创数字IC笔试试卷带答案

FPGA基础知识与设计要点摘要 本文围绕FPGA与数字IC设计核心概念,通过单选题、波形分析题、多选题和简答题形式,系统梳理了以下关键知识点: FPGA基础架构 查找表(LUT)是实现组合逻辑的基本单元(题1) CLB包含LUT、触发器和进位链,后者加速算术运算(题6,10) 布局布线优化是减少关键路径延迟的核心方法(题7) 时序分析要点 建立时间(时钟沿前数据需稳定)与保持时间(时钟沿后需保持)的定义(题2,简答1) 亚稳态成因及两级同步器处理跨时钟域信号的方法(多选题1,波形题5) 特殊设计技术 异步复

Open 114

JNDI RAS,SM2,SM4 动态sql Event

JNDI :https://blog.csdn.net/wn084/article/details/80729230 RAS SM2 SM4加密算法:https://blog.csdn.net/jambeau/article/details/99761661 动态sql:https://mybatis.org/mybatis-3/zh/dynamic-sql.html Event事件通知机制:https://blog.csdn.net/chengbinbbs/article/details/88409951

a791812366的博客 270

华为OD机试双机位C卷-简单的解压缩算法(C/C++/Py/Java/Js/Go)

华为OD机试(机考)双机位C卷 【简单的解压缩算法】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD真题【简单的解压缩算法】。

qq_45776114的博客 477

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

6.括号问题

下面的代码用于判断一个串中的括号是否匹配所谓匹配是指不同类型的括号必须左右呼应,可以相互包含,但不能交叉 例如: ..(..[..]..)..  是允许的 ..(...[...)....].... 是禁止的 对于 main 方法中的测试用例,应该输出: false true false false 请分析代码逻辑,并推测划线处的代码。 答案写在“解答.txt”文件中 注意:只写划线处应该填的内容,

Away_D的博客 420

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

mysql数据库字段作sm3加密_MySQL数据库加密与解密:

数据加密、解密在安全领域非常重要。对程序员而言,在数据库中以密文方式存储用户密码对入侵者剽窃用户隐私意义重大。有多种前端加密算法可用于数据加密、解密,下面我向您推荐一种简单的数据库级别的数据加密、解密解决方案。以MySQL数据库为例,它内建了相应的加密函数(AES_ENCRYPT())和解密函数(AES_DECRYPT())。在建表的时候,要注意字段的类型.如下图所示:在表中插入加密数据上面的插...

weixin_29029145的博客 3711

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

openGauss支持国密SM3和SM4算法

...

openGauss的博客 1807

巧用SQL代码查看MS SQL Server中的所有数据字典

本文中的SQL代码可以在企业管理器、查询分析器中简单执行,直接了当的查出SQL Server 2000及SQL Server 2005的所有数据字典。 (注释:数据库字典包括表结构(分SQL Server 2000和SQL Server 2005)、索引和主键.外键.约束.视图.函数.存储过程.触发器。) SQL Server 2000数据库字典—表结构.sql  

Lucker's PowerSpace 2515

MSSQL优化之————探索MSSQL执行计划

MSSQL优化之————探索MSSQL执行计划 作者:no_mIss  QQ:34813284时间:2006.11.07 23:30:00环境:win2003 + mssql2005  最近总想整理下对MSSQL的一些理解与感悟,却一直没有心思和时间写,晚上无事便写了一篇探索MSSQL执行计划,本文讲执行计划但不仅限于讲执行计划。 网上的SQL优化的文章实在是很多,说实

no_mIss的专栏 1万+

MSSQL中IN是否用索引.....

作者:no_mIss用MSSQL时间快一年了,数据量有时会相对比较多,所以经常要优化,也看过很多资料,但大都有一句:IN、NOT IN不用索引,今天发此贴希望能有人参与讨论,到底IN用不用索引,如果用,在什么情况下用索引,在什么情况下不用索引。前提:表[Table]字段[id] INT PRIMARY KEY 聚集索引以下写法:SELECT * FROM [Table] WHERE id = 1肯

no_mIss的专栏 1万+

修改字段类型为“标识”,并设置该字段为主键的SQL语句怎么写

主  题:   修改字段类型为“标识”,并设置该字段为主键的SQL语句怎么写??

no_mIss的专栏 9748

取两个字符串的并集与交集的函数

第一个:取两个字符串的并集,如1,2,3和2,5,9并集为:1,2,3,5,9CREATE FUNCTION dbo.bingSTR(@str1 VARCHAR(1000),@str2 VARCHAR(1000),@splitstr VARCHAR(10))     RETURNS VARCHAR(2000)ASBEGIN      DECLARE @str VARCHAR(2000)

no_mIss的专栏 6338

Wind2003下MSDTC对DTS运行的影响

   首先,介绍一下偶的DTS包大致结构:大包由5个任务包和一些SQL任务组成,在包的设计过程中,应用到了Windows 的MSDTC服务,控制包中的分布式事物。SQLServer环境:SQLServer2000企业版+SP3运行期一:Window2000Server(服务器)-Window2000Profassional(客户端)。比较顺利,处理好DTS包的链接事务处理后就可以正常运行,关于

no_mIss的专栏 2630

经典SQL Server用户自定义函数:首字拼音查询

经典SQL Server用户自定义函数:首字拼音查询 /*--获得汉字字符串的首字母   根据大力的贴子改成.将大力的两个函数合并成了一个函数.   可以应用于助记码的查询   作者:邹建--*/if exists (select * from dbo.sysobjects where id = object_id(N[dbo].[f

no_mIss的专栏 2628
上一篇: 解决windows 2003+Sql2000中OLEDB分布式事务无法启动的解决方案
下一篇: 写了一个简单的ajax操作类
no_mIss
博客等级 码龄21年 9粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值