Tag: MySQL

转义MySQL通配符

在旧的服务器上,我正在使用,我不能使用准备好的语句我目前正试图完全逃避用户input之前,发送到MySQL。 为此,我使用PHP函数mysql_real_escape_string 。 由于这个函数不能逃避MySQL通配符%和_,所以我使用addcslashes来转义这些。 当我发送像这样的东西: test_test " ' 到数据库再读回数据库显示: test\_test " ' 看这个,我不明白为什么_有一个前面的反斜杠,但是“和”不是,因为它们全都用\确定地转义了_'和“应该都是相同的,即所有的转义符都可见或所有没有它可见。 逃跑是自动筛选出来的 任何人都可以解释吗?

MySQL分页没有双重查询?

我想知道是否有办法从MySQL查询中获得结果的数量,同时限制结果。 分页的工作方式(据我所知),首先我做类似的事情 query = SELECT COUNT(*) FROM `table` WHERE `some_condition` 在我得到num_rows(查询)后,我有结果的数量。 但是,然后实际上限制我的结果,我不得不做第二个查询,如: query2 = SELECT COUNT(*) FROM `table` WHERE `some_condition` LIMIT 0, 10 我的问题是:无论如何都要检索将给出的结果总数,并限制在单个查询中返回的结果? 或者任何更有效的方式来做到这一点。 谢谢!

在MySQL中检测值是否是数字

有没有办法检测一个值是否是MySQL查询中的一个数字? 例如, SELECT * FROM myTable WHERE isANumber(col1)=true

MySQL:只从列中select唯一的值

我有一个MySQL表,其中包含以下types的信息: Date product 2011-12-12 azd 2011-12-12 yxm 2011-12-10 sdx 2011-12-10 ssdd 这里是我用来从这个表中获取数据的一个脚本的例子: <?php $con = mysql_connect("localhost","username","password"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("db", $con); $sql=mysql_query("SELECT * FROM buy ORDER BY Date"); while($row = mysql_fetch_array($sql)) { echo "<li><a href='http://www.website/". $row['Date'].".html'>buy ". date("j, MY", strtotime($row["Date"]))."</a></li>"; } mysql_close($con); ?> 该脚本显示表中的每个date,例如 12.dec 2011 12.dec.2011 10.dec.2011 […]

如何检查一个值是否是MySQL中的整数?

我发现在MySQL内部有Cast()和Convert()函数从值中创build整数,但是有什么办法来检查一个值是一个整数吗? 像PHP中的is_int()就是我正在寻找的东西。

MYSQL更新语句内部连接表

我不知道是什么问题。 使用MySQL 5.0我试图运行下面的MYSQL更新语句时出现编译错误 UPDATE b SET b.mapx = g.latitude, b.mapy = g.longitude FROM business AS b INNER JOIN business_geocode g ON b.business_id = g.business_id WHERE (b.mapx = '' or b.mapx = 0) and g.latitude > 0 所有的字段名称都是正确的。 有什么想法吗?

MySQL查询select上周的数据?

嗨,我有一个date字段和其他一些信息表。 我想select过去一周的所有参赛作品,(从周日开始的一周)。 表值: id date 2 2011-05-14 09:17:25 5 2011-05-16 09:17:25 6 2011-05-17 09:17:25 8 2011-05-20 09:17:25 15 2011-05-22 09:17:25 我想从上周select所有的ID,预期的输出是5,6,8。 (ID 2不在上周,ID 15在本周。) 如何编写和SQL查询相同。

SQL查询:从表中删除除最新N之外的所有logging?

是否有可能build立一个单一的mysql查询(无variables)从表中删除所有logging,除了最新的N(按ID descsorting)? 像这样的东西,只有它不工作:) delete from table order by id ASC limit ((select count(*) from table ) – N) 谢谢。

如何检查mysql数据库是否存在

是否可以检查一个(MySQL)数据库是否存在连接后。 我知道如何检查数据库中是否存在表,但是我需要检查数据库是否存在。 如果没有,我必须调用另一段代码来创build它并填充它。 我知道这一切听起来有点不雅 – 这是一个快速和肮脏的应用程序。

是否有一个MySQL选项/function来跟踪logging更改的历史logging?

我被问到是否可以跟踪对MySQL数据库中logging的更改。 所以当一个领域被改变时,旧的vs新的可用的和这个发生的date。 有没有一个function或共同的技术来做到这一点? 如果是这样,我正在考虑做这样的事情。 创build一个名为更改的表。 它将包含与主表TABLE相同的字段,但前缀为新旧,但仅适用于实际更改的那些字段以及一个TIMESTAMP。 它将被编入一个ID。 这样,可以运行一个SELECT报告来显示每条logging的历史logging。 这是一个好方法吗? 谢谢!