今天碰到一个问题,很莫名奇妙,或许本身就是这样的,我写下来,做个记录,是这样的。我在查询表中一个记录时,SELECT*FROM member WHERE member_uname=zhangsan
LIMIT 0 , 30,如果zhangsan 不加''时,就查询不到,提示#1054 - Unknown column 'zhangsan' in 'where clause'。然后我就加上了'',就可以找到了。当然了,这里的zhangsan是varchar类型。
在写入数据库时,$data['member_id'] = $customerCenter->getMemberId("'".$data["member_name"]."'")才可以,如果把两边的符号都去掉,也会出现错误,难道这是字符串型的要求,奇怪以前没有发现。
TRUNCATE和DELETE有以下几点区别 1、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销。 2、TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。 3、TRUNCATE将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比DELETE操作后的表要快得多。 4、TRUNCATE不能触发任何DELETE触发器。 5、不能授予任何人清空他人的表的权限。 6、当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。 7、不能清空父表。 TRUNCATE TABLE NAME,注意,表名不带引号。
今天碰到一个多表连接查询问题,mysql数据库。
SELECTo.order_id,o.order_no,it.item_id,it.item_order_id,it.item_product_id
FROM `order` o
INNER JOIN `order_items`itONo.order_id=it.item_order_id
WHERE o.order_no=1210270958052235
LIMIT 0 , 30
开始的时候我把,order表简写成or,结果怎么改都不对,最后突然想起来or是一个关键字,改成o,立马解决。还有一点是。
`order_items` 和order_items有什么区别,为什么有时候不加``的时候也是可以的。目前还是没搞明白。