PHP编程之高级技巧——利用Mysql函数?
构建当前需求最严苛应用程序的最佳实践和专家技能,作为世界上最流行、最通用的开放源代码脚本语言,PHP经常会与MySQL一起被用于构建大业务量、处理关键任务的应用程序。《PHP+MySQL弩家编程》详细介绍了经过证实的、作者测试过的最佳实践和专家技能,能够用于构建需求最严苛的MySQL驱动的PHP应用程序。 还介绍了使用用户自定义函数扩展MySQL的方法、编写PHP扩展,以及当单独使用PHP和MySQL无法解决问题时可用的其他技术和第三方工具。主要内容回顾了设计模式、复杂查询和高级正则表达式等必要技术讨论选代和闭包等高级PHP概念使用Gearman说明如何在Web应用程序中执行多任务使用memcached在MySQL和PHPWeb应用程序中讨论缓存的使用讨论建立PHP扩展和MySQL用户自定义函数的方法说明如何使用Sphinx-在PHPWeb应用程序中实现搜索功能。
如何使用MySQL中的实用函数及查询技巧?
mysql常用的函数包括数学函数,字符串函数,日期相关函数,加密函数等,你挨个尝试一下应该都能掌握了。至于查询技巧,你可以建几个表尝试一下left join,inner join,union all等,尝试一下行转列,列转行,尝试一下分页查询的写法。
总之,很多东西还是要在实际的项目中多用,自然就能熟练,也不必着急。
希望我的回答能给您带来帮助…
1.函数CONCAT使用场景:查询时把多个字段拼接成一个字符串;2.函数IFNULL 使用场景:查询时判断字段是否为空,如果为空则取第二个默认参数,不为空则取表中数据;3.函数COALESCE使用场景:查询时判断字段是否为空,如果字段为空则取从第二个参数开始不为空的值,字段不为空则取表中数据;4.REPLACE使用场景:查询时替换字段中的指定字符;5.函数FIND_IN_SET使用场景:指定字符在字段中是否存在,这类字段都有一个特点,就是会有多个值,以 ','(英文逗号)分隔;6.函数CASE使用场景:一张表中有 state 字段,取值为 0(禁用) 或 1(启用),但是想在查询结果中分别显示对应的中文汉字;7.函数GROUP_CONCAT使用场景:假如有一张产品表,一张产品标签表以及一张产品标签关联表,想查出每个产品对应的多个产品标签 id;8.函数DATE_FORMAT使用场景:格式化时间;9.函数TIMESTAMPDIFF使用场景:求出时间差。
查询技巧:比较运算符能用 “=”就不用“<>”;明知只有一条查询结果,那请使用 “LIMIT 1”;为列选择合适的数据类型;将大的DELETE,UPDATE or INSERT 查询变成多个小查询;使用UNION ALL 代替 UNION,如果结果集允许重复的话;为获得相同结果集的多次执行,请保持SQL语句前后一致;尽量避免使用 “SELECT *”;WHERE 子句里面的列尽量被索引;JOIN 子句里面的列尽量被索引; ORDER BY 的列尽量被索引;使用 LIMIT 实现分页逻辑;使用 EXPLAIN 关键字去查看执行计划。
这是平日总结的,可以参考下