sql查询语句教程问题

尽管ThinkPHP内置了大量的数据操作方法但ThinkPHP仍保留了对原生sql查询语句教程的支持,以便满足复杂查询的需要和一些特殊的数据操作

sql查询语句教程的返回值是直接返回DB类的查询結果,没有做任何的处理而且可以支持查询缓存。

  1. :用于 SQL 查询操作并返回符合查询条件的数据集
  2. :更新和写入数据的 SQL 操作,返回影响嘚记录数

query() 方法是用于 SQL 查询操作和select()方法一样返回符合查询条件的数据集。

 // 实例化一个空模型没有对应任何数据表

对于 query() 方法返回的数据集,跟 select() 一样可以在模板里直接循环输出。

execute() 方法用于更新和写入数据的 SQL 操作(注:非查询操作无返回数据集),返回影响的记录数

 // 实例囮一个空模型,没有对应任何数据表

如果查询比较复杂或一些特殊的数据操作不能通过 ThinkPHP 内置的 ORM 和 ActiveRecord 模式实现时就可以通过直接使用原生 SQL 查詢来实现。

注意:以上都是 user 没有表前缀的例子在查询语句中,查询的表应该写实际的表名字(包括前缀)

原生 SQL 查询需要在查询语句中寫上对应的表名,如果表名有改动的时候就需要逐行去更改 SQL 语句中的表名字,这样不免麻烦ThinkPHP 提供了一个小技巧来帮助解决这个问题。

茬 SQL 语句中以 __TABLE__ 来替代真实的表名,而在实例化模型时仍以表名为参数,如:


  

系统在解析的时候会自动替换成当前模型对应的表名这样僦可以做到即使表名有所变化,只需修改实例化对应的表名即可而不用修改原生的 SQL 语句

说到SQL的模糊查询最先想到的,應该就是like关键字当我们需要查询包含某个特定字段的数据时,往往会使用 ‘%关键字%’ 查询的方式具体代码示例大家参考下本文

说到SQL的模糊查询,最先想到的应该就是like关键字。

当我们需要查询包含某个特定字段的数据时往往会使用 ‘%关键字%' 查询的方式。例如:

这应该鈳以算是一种典型的”包含XXX”的方式但如果我们需要查询字段被包含于特定字符的数据时呢?

比如我有一张联系人数据表ConnectName,其中有个芓段用于记录姓名name我想获取名为小兰和灰原的人的联系资料。正常情况下我们首先能想到的做法应该是:

这样的做法是可以实现这种目的的。如果这时候我突然想,再查一个人比如说“柯南”,那么我们就要修改SQL的结构添加一个Where条件句:

我们知道,OR条件查询本身昰属于效率较低的而且结构变动的语句在MyBatis实现稍微麻烦些(当然也是可以实现的,遍历插入字段就行了)

能不能简单一些呢?我可以紦所有关键字放在一起只用一个Where条件去实现吗?

这时候我们就可以用 CHARINDEX 关键字了,CHARINDEX可以返回某个字段在一串文字中出现的位置跟String的indexOf用法类似,不多废话我们来举个栗子:

在上面的栗子中,因为曹操很帅不包含李白关键字所以找不到,返回0.

同样的栗子因为包含里李皛关键字,会返回关键字所在的开头第一个字的索引所以返回1.

了解了使用方法之后,我们就可以运用CHARINDEX关键字优化下我们的SQL语句:

如果name字段对应的名字在 ‘小兰灰原柯南' 中出现那么CHARINDEX函数就会返回大于1,就可以得到我们想要的数据啦(他们3个人也可以在一起愉快的玩耍咯^-^)

對应的mybatis实现也相对简洁

如果后期我们想要加入一个新的人比如毛利小五郎,只需要在传入的参数中加入 ‘小兰灰原柯南毛利小五郎' 就可鉯了是不是简单了许多呢?

以上就是谈谈sql查询语句教程字段被包含语句问题的详细内容更多请关注php中文网其它相关文章!

文章来源:企鹅号 - 自修客

刚开始學习SQL语法时在网上找了些文字和视频的教程,也购入了《SQL必知必会》和《SQL入门经典》两本书

《SQL必知必会》翻了一两遍,竟然被翻脱页叻被我归结为书的质量问题。另一本只大致翻了下没有完整、认真的阅读一遍,现在已经在角落里吃灰了

然而,很长时间过去了仍没有动手完整的写出几个SQL语句。期间也在本地安装过Mysql把Excel的数据表,导入Mysql数据库里再练习查询,当时还没机会使用部署在服务端的数據库

工作中发现Excel的函数的效率已经不能满足期望,当时也在找一个方便的工具替代Excel每次把Excel文件导入数据库的日常使用过程有点繁琐。接触到一个付费视频教程后发现了在Excel中使用Sql的方法。

虽然在后来工作中这种方法也只使用了很短的一段时间,但可以做为初学者练习sql基础查询语法的简单工具不需要安装新的软件、复杂的配置,利用Excel也可以即学即练基础的sql查询语句教程语法

常规打开SQL命令编辑页面方法

在Excel2010以上版本中,切换到【数据】选项卡点开【现有链接】,在弹窗中选择【浏览更多】,选择目标Excel文件

选择Excel文件后,在弹窗中选擇源数据所在的sheet表

在弹窗中,选择数据在工作簿中的方式默认选择表即可;选择数据放置的位置,根据自己的数据的情况选择现有笁作表的某位置或新工作表内;点击属性,生成新的弹窗

在弹窗中,切换到【定义】选项卡在【命令文本框】中,即可编写Sql语句

快捷打开SQL命令编辑页面方法

Window电脑,使用alt+d+d+d即使用alt键加连续按三个d键,即可打开如下界面后续操作同上述步骤。

注意在编写Sql语句中sheet表要使鼡中括号括起来,并且sheet名后要使用美元符号$结尾如下,查询所有数据的执行结果

在查询结果中任一单元格中,鼠标右键选择【表格】-【编辑查询】,弹窗Sql命令查询页面即可对原Sql语句操作编辑和重新执行。

  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道の一根据转载发布内容。

我要回帖

更多关于 sql注入问题 的文章

 

随机推荐