问个关于SQL语句的问题,应该不是很难

fs822 2010-07-08 11:48:59
SQL怎么检索标签?

比如这个数据库

BookID bookTag
1 "小说|悬疑|促销"
2 "经商|人物传记"
3 "立志|人物传记|促销"

现在搜索关键字 "促销|立志",怎么把3号ID搜索出来?

要求是一个"|"对应一个标签,搜索关键字中要所有标签都出现,才显示对应结果
(如1号中有“小说”标签,搜索关键字中没有此标签,就不显示)。而先后顺序不影响搜索结果。

怎么用SQL写?谢谢大家了。




'如果描述不是很清楚的话可以参考这段VB代码,返回书的标签是否符合搜索标签
Function matchTag(ByVal bookTag As String, ByVal searchTag As String) As Boolean
Dim bookT, searchT, found As Boolean
bookT = Split(bookTag, "|")
'把书本的标签根据“|”分割成数组
searchT = Split(searchTag, "|")
'把搜索的标签根据“|”分割成数组

For i = 0 To UBound(searchT)
'遍历一遍搜索的标签,寻找图书关键字中是否有匹配的标签
found = False
'初始值为没有找到
For j = 0 To UBound(bookT)
'遍历一遍图书的标签
If (bookT(j) = searchT(i)) Then
'匹配图书的标签和搜索的标签
found = True: Exit For
'找到了,跳过当前For,继续匹配下一个搜索标签
End If
Next
If (Not (found)) Then matchTag = False: Exit Function
'要是没有找到就返回false
Next
matchTag = True: Exit Function
'执行到这一步说明全部找到,返回True
End Function

...全文
100 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fs822 2010-07-08
  • 打赏
  • 举报
回复
明白 谢谢
ACMAIN_CHM 2010-07-08
  • 打赏
  • 举报
回复
VB中你可以用split把 "促销|立志“ 拆分到数组中,然后对这个数据循环生成 instr(bookTag,”促销“) and instr((bookTag,”立志") and ...
fs822 2010-07-08
  • 打赏
  • 举报
回复
谢谢上面的回答了,试试看
fs822 2010-07-08
  • 打赏
  • 举报
回复
原来是这样写的
rs.open "select * from bookTable",db,1,3
while not(rs.eof)
if(matchTag(rs("booktag"),request("searchTag"))) then
response.write("图书编号:" & rs("BookID") & "<br>")
end if
rs.movenext
wend

但觉得速度慢点,而且内存占用多,有没有等价高效的算法?
ACMAIN_CHM 2010-07-08
  • 打赏
  • 举报
回复
ACCESS的JET-SQL中不支持正则表达式,无法仅通过SQL语句来实现你要求的这个功能。直接先通过程序VB代码把 "促销|立志“拆分为 ”促销“ 、”立志" 然后生成SQL语句 select * from xxxx where instr(bookTag,”促销“) and instr((bookTag,”立志")
内容概要:本文提出了一种考虑储能电池参与电力系统一次调频的技术经济模型,并基于该模型研究储能容量的优化配置方法。通过构建涵盖调频收益与投资运营成本的综合评估框架,深度融合储能电池的响应速度、循环寿命、充放电效率等关键技术特性,以及电价机制、政府补贴、运维费用等经济要素,建立了以项目全生命周期净现值(NPV)最大化为目标的非线性规划模型。采用Matlab平台对模型进行编程求解,通过多场景仿真对比分析,系统评估了不同政策环境、市场机制和技术参数下储能最优容量配置方案的经济性与技术可行性,验证了该方法在保障电网频率稳定的同时,实现储能投资效益最优化的有效性与实用性。; 适合人群:具备电力系统分析、优化建模基础及Matlab编程能力,从事新能源并网、储能系统规划、电力市场机制设计等相关领域研究的研发人员、工程师及高校研究生。; 使用场景及目标:①深入探究储能电池在电网一次调频中的动态响应机理与性能要求;②科学量化评估储能项目在辅助服务市场中的投资回报率,指导其容量配置以达成技术性能与经济效益的双重最优;③为电网公司、能源投资企业及政策制定者提供数据驱动的储能规划与投资决策支持工具。; 阅读建议:读者应重点关注技术经济模型的构建逻辑、目标函数与约束条件的设计原理,结合Matlab代码深入理解算法实现细节,并可通过调整电池成本、充放电效率、电价政策等关键参数进行敏感性分析,进一步探究其对最优配置结果的影响规律,深化对储能价值的认知。
内容概要:本文研究了基于企鹅优化算法(POA)的航空调度问题,并提供了Matlab代码实现。通过将企鹅优化算法应用于航空调度这一复杂的组合优化问题,旨在提升航班安排、飞机起降顺序、机场资源分配等方面的效率与合理性。文中系统阐述了算法模型的设计原理、优化机制及其在航空调度场景中的具体实施流程,结合仿真实验验证了该方法在求解速度、收敛性能及调度方案质量方面的优越性,尤其在处理大规模调度任务时表现出较强的全局搜索能力与稳定性,为智能优化算法在空中交通管理领域的实际应用提供了有力的技术支持与实践范例。; 适合人群:具备一定优化算法理论基础和Matlab编程能力,从事航空航天、交通运输、智能优化算法研究等相关领域的科研人员、高校研究生及工程技术人员。; 使用场景及目标:①解决航空公司航班计划编排、机场跑道调度、停机位分配等实际运营中的复杂调度问题;②为群智能优化算法(如POA、PSO、GA等)在复杂组合优化问题中的应用提供可复现的案例参考;③借助Matlab仿真平台进行算法性能测试、参数调优与结果可视化分析,推动智能调度算法从理论研究向工程应用转化。; 阅读建议:建议读者结合所提供的Matlab代码进行动手实践,重点关注算法初始化、适应度函数设计、约束处理机制及调度结果可视化等关键环节,深入理解企鹅优化算法在解决航空调度问题中的实现逻辑与优化策略,同时可尝试将其扩展至其他调度场景以提升综合应用能力。
内容概要:本文围绕基于元模型优化算法的主从博弈多虚拟电厂动态定价与能量管理展开研究,通过Matlab代码实现完整复现EI级别高水平研究成果。研究融合主从博弈理论与元模型优化方法,构建多虚拟电厂在复杂电力市场环境下的动态定价与协同调度模型,重点解决各主体间的利益冲突与资源优化配置问题。模型充分考虑供需响应、运行成本与系统稳定性,实现经济效益与运行效率的双重提升,具有较强的理论深度与工程应用价值。该资源不仅提供可运行代码,还系统呈现建模思路、算法设计与仿真分析全过程,有助于深入理解高级优化方法在现代能源系统中的实际应用。; 适合人群:具备电力系统分析、优化算法及博弈论基础,从事智能电网、综合能源系统、虚拟电厂等领域研究的高校研究生、科研人员及工程技术开发者。; 使用场景及目标:①掌握主从博弈在多智能体能源系统中的建模技巧;②学习元模型优化算法在动态定价与能量调度中的集成应用;③复现并拓展EI/SCI级高水平论文成果,支撑科研项目申报与学术论文撰写; 阅读建议:建议结合Matlab代码逐模块调试,深入理解博弈结构设计与元模型加速机制,重点关注目标函数构建、约束处理及收敛性分析,鼓励在此基础上开展参数敏感性分析或引入不确定性建模以进一步提升研究深度。

7,732

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧