1,%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。
比如 SELECT FROM [user] WHERE u_name LIKE '%三%'
将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。
另外,如果需要找出u_name中既有“三”又有“猫”的记录,请使用and条件
SELECT FROM [user] WHERE u_name LIKE '%三%' AND u_name LIKE '%猫%'
若使用 SELECT FROM [user] WHERE u_name LIKE '%三%猫%'
虽然能搜索出“三脚猫”,但不能搜索出符合条件的“张猫三”。
2,_: 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:
比如 SELECT FROM [user] WHERE u_name LIKE '_三_'
只找出“唐三藏”这样u_name为三个字且中间一个字是“三”的;
再比如 SELECT FROM [user] WHERE u_name LIKE '三__'; 只找出“三脚猫”这样name为三个字且第一个字是“三”的;
既然是多方式模糊查询,那么必须具备几个条件:
1、首先有查询方式的选择框,还有查询需要的关键字的输入框;
2、模糊查询结果不是一条记录,那么必须将查询出的所有结果在列表框控件中显示出来;
3、点击列表框中的一条记录,在文本框中显示这条记录的详细内容。
我比较喜欢用MSFlexGrid控件显示查询结果,下面给你一个比较实用的范例:
Private Sub Command1_Click() '查询
If Combo1Text = "" Then
MsgBox "你没有选择查询方式,请选择!", 16, "错误!"
Exit Sub
End If
If Text1Text = "" Then
MsgBox "你没有填写关键字,请填写!", 16, "错误!"
Exit Sub
End If
If Combo1Text = "查询条件1" Then
strSQL = "Select From 数据表名 字段名1 Like '%" & Text1Text & "%'"
ElseIf Combo1Text = "查询条件2" Then
strSQL = "Select From 数据表名 Where 字段名2 Like '%" & Text1Text & "%'"
ElseIf Combo1Text = "查询条件3" Then
strSQL = "Select From 数据表名 Where 字段名3 Like '%" & Text1Text & "%'"
End If
Call SJK(db) '数据库连接函数
RSOpen strSQL, db, 2, 2
Do While Not RSEOF
SST = SST + 1
RSMoveNext
Loop
RSClose
Set RS = Nothing
If SST = 0 Then
MsgBox "你没有你查询的记录!", 16, "无记录!"
With MSFlexGrid1
Cols = 3
Rows = 1
TextMatrix(0, 0) = " 序号"
TextMatrix(0, 1) = " 姓名"
ColWidth(0) = 1000
ColWidth(1) = 1000
ColWidth(2) = 0
End With
dbClose
Set db = Nothing
Exit Sub
End If
With MSFlexGrid1
Cols = 3
Rows = SST + 1
TextMatrix(0, 0) = " 序号"
TextMatrix(0, 1) = " 姓名"
ColWidth(0) = 1000
ColWidth(1) = 1000
ColWidth(2) = 0
RSOpen strSQL, db, 2, 2
For I = 1 To SST
TextMatrix(I, 0) = I
TextMatrix(I, 1) = RS!姓名
If Option1(0)Value = True Then
TextMatrix(I, 2) = RS!SID
ElseIf Option1(1)Value = True Then
TextMatrix(I, 2) = RS!SID
ElseIf Option1(2)Value = True Then
TextMatrix(I, 2) = RS!SID
ElseIf Option1(3)Value = True Then
TextMatrix(I, 2) = RS!ZID
ElseIf Option1(4)Value = True Then
TextMatrix(I, 2) = RS!SID
End If
RSMoveNext
Next I
RSClose
Set RS = Nothing
End With
dbClose
Set db = Nothing
Label1(2)Caption = "本次查询结果" & SST & "条"
End Sub
Private Sub MSFlexGrid1_Click()
If Not Val(Trim(MSFlexGrid1TextMatrix(MSFlexGrid1Row, 2))) = 0 Then
PKID = Val(Trim(MSFlexGrid1TextMatrix(MSFlexGrid1Row, 2)))
Call SJK(db)
strSQL = "select from 数据表名 Where ID=" & PKID & " Order By ID"
RSOpen strSQL, db, 3, 3
Text2(0)Text = RS!字段1
Text2(1)Text = RS!字段2
Text2(2)Text = RS!字段3
Text2(3)Text = RS!字段4
Text2(4)Text = RS!字段5
Text2(5)Text = RS!字段6
Text2(6)Text = RS!字段7
Text2(7)Text = RS!字段8
RSClose
Set RS = Nothing
dbClose
Set db = Nothing
End If
End Sub
MEDIUMTEXT
一个BLOB或TEXT列,最大长度为16777215(2^24-1)个字符。
TEXT
一个BLOB或TEXT列,最大长度为65535(2^16-1)个字符。
这两个的区别是长度不同。
以上就是关于mysql里面的text字段怎么进行模糊查询全部的内容,包括:mysql里面的text字段怎么进行模糊查询、VB6程序查询数据库、SQLServer中的text类型字段要如何查询(sql查看字段类型)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)