Tag: MySQL

在MySQL vs PHP中进行计算

语境: 我们有一个PHP / MySQL应用程序。 计算的一些部分直接在SQL中完成。 例如:在过去24小时内创build的所有用户都将通过SQL查询(NOW() – 1天)返回, 有一位开发者和我之间正在进行辩论,我认为我们应该: A.将所有计算/代码/逻辑保存在PHP中,并将MySQL视为一个“愚蠢”的信息存储库 他的观点: B.根据什么更容易/更快来做混搭。 http://www.onextrapixel.com/2010/06/23/mysql-has-functions-part-5-php-vs-mysql-performance/ 我正在考虑可维护性的观点。 他正在看速度(正如文章指出的那样,MySQL中的一些操作速度更快)。 @ bob-the-destroyer @tekretic @OMG小马@mu太矮了@Tudor Constantin @tandu @Harley 我同意(而且非常明显)高效的WHERE子句属于SQL级别。 然而,像这样的例子: 使用NOW()计算24个周期 – 在SQL中select1天,以select在过去24小时内创build的所有用户? 返回大写的所有用户的名字和姓氏? 连接一个string? (想法,乡亲?) 清除属于SQL域的示例: 具体的WHEREselect 嵌套的SQL语句 订购/分拣 selectDISTINCT项目 计数行/项目

使用MySQL生成一个随机唯一的8个字符的string

我正在做一个涉及车辆的游戏。 我有一个名为“车辆”的MySQL表,其中包含有关车辆的数据,包括存储车辆牌照的栏“板”。 现在来看看我遇到的问题。 我需要在创build新车之前find一个未使用的车牌 – 它应该是一个字母数字的8个字符的随机string。 我是如何实现这个function的,是在Lua中使用一个while循环来生成string,并查询数据库是否被使用。 但是,随着车辆数量的增加,我预计这会变得更加低效。 因此,我决定尝试使用MySQL查询来解决这个问题。 我需要的查询应该简单地生成一个8个字符的字母数字string,它不在表格中。 我想到了再次生成和检查循环的方法,但我并没有限制这个问题,以防万一有一个更有效的问题。 我已经能够通过定义一个包含所有允许的字符和随机子串的string来生成string。 任何帮助表示赞赏。

MySQL – 忽略插入错误:重复的条目

我正在使用PHP。 请问在DB中插入新logging的方法是什么? 我在一批中插入大量的logging,我只是想要插入新的logging,我不希望任何重复条目的错误。 是否只有这样的方法才能首先进行SELECT并查看INSERT之前的条目是否已经存在?并且只有当SELECT返回没有logging时才允许INSERT? 我希望不是。 我想以某种方式告诉MySQL忽略这些插入没有任何错误。 谢谢

我如何决定何时使用正确的连接/左连接或内部连接或如何确定哪个表在哪一边?

我知道连接的用法,但是当我无法决定哪一个连接是合适的, 左边或右边的时候,我有时遇到这样的情况。 这里是我被卡住的查询。 SELECT count(ImageId) as [IndividualRemaining], userMaster.empName AS ID#, CONVERT(DATETIME, folderDetails.folderName, 101) AS FolderDate, batchDetails.batchName AS Batch#, Client=@ClientName, TotalInloaded = IsNull(@TotalInloaded,0), PendingUnassigned = @PendingUnassigned, InloadedAssigned = IsNull(@TotalAssigned,0), TotalProcessed = @TotalProcessed, Remaining = @Remaining FROM batchDetails Left JOIN folderDetails ON batchDetails.folderId = folderDetails.folderId Left JOIN imageDetails ON batchDetails.batchId = imageDetails.batchId Left JOIN userMaster ON imageDetails.assignedToUser […]

MySQL:查询获取上个月的所有行

我需要select上个月创build的数据库中的所有行。 例如,如果当前月份是一月份,那么我想要返回在十二月份创build的所有行,如果该月份是二月份,那么我想返回在一月份创build的所有行。 我在我的数据库中有一个date_created列,列出以这种格式创build的date: 2007-06-05 14:50:17 。

MySQL – 将UTF8表上的latin1字符转换为UTF8

直到今天,我意识到我在我的PHP脚本中错过了这个: mysql_set_charset('utf8'); 我所有的表都是InnoDB,sorting规则是“utf8_unicode_ci”,而我所有的VARCHAR列也是“utf8_unicode_ci”。 我有mb_internal_encoding('UTF-8'); 在我的PHP脚本上,我所有的PHP文件都被编码为UTF-8。 所以,到现在为止,我每次用插入符号“插入”一些东西,例如: mysql_query('INSERT INTO `table` SET `name`="Jáuò Iñe"'); 在这种情况下,“名称”的内容将是: Jáuò Iñe 。 由于我修正了PHP和MySQL之间的字符集,所以新的INSERT现在可以正确存储了。 但是,我想修复所有现在“混乱”的旧行。 我已经尝试了很多东西,但总是打破了第一个“非法”字符的string。 这是我现在的代码: $m = mysql_real_escape_string('¿<?php echo "¬<b>\'PHP &aacute; (á)ţăriîş </b>"; ?> ă-ţi abcdd;//;ñç´พดแทฝใจคçăâξβψδπλξξςαยนñ ;'); mysql_set_charset('utf8'); mysql_query('INSERT INTO `table` SET `name`="'.$m.'"'); mysql_set_charset('latin1'); mysql_query('INSERT INTO `table` SET `name`="'.$m.'"'); mysql_set_charset('utf8'); $result = mysql_iquery('SELECT * FROM `table`'); while ($row = mysql_fetch_assoc($result)) […]

HTML – 更新\更新页面内容,而不刷新\重新加载页面

我从数据库中获取数据,并显示在一个div …我想要做的是当我点击一个链接,它应该改变div的内容 一个选项是通过URL传递参数给自己并重新加载页面… 我需要这样做, 无需重新加载\刷新 … <?php $id = '1'; function recp( $rId ) { $id = $rId; } ?> <a href="#" onClick="<?php recp('1') ?>" > One </a> <a href="#" onClick="<?php recp('2') ?>" > Two </a> <a href="#" onClick="<?php recp('3') ?>" > Three </a> <div id='myStyle'> <?php require ('myConnect.php'); $results = mysql_query("SELECT para FROM content […]

在MySQL查询中将时间戳转换为date

我想将MySQL中的timestamp转换为date。 我想将user.registration字段格式化为yyyy-mm-dd文本文件。 这是我的SQL: $sql = requestSQL("SELECT user.email, info.name, FROM_UNIXTIME(user.registration), info.news FROM user, info WHERE user.id = info.id ", "export members"); 我也尝试过的date转换: DATE_FORMAT(user.registration, '%d/%m/%Y') DATE(user.registration) 我回应之前的结果编写文本文件,我得到: email1; name1; DATE_FORMAT(user.registration,'%d /%m /%Y'); news1 EMAIL2; NAME2;新闻2 如何将该字段转换为date?

将数据库字段增加1

使用MySQL,如果我有一个字段,说login,我将如何去更新该字段1在一个SQL命令内? 我试图创build一个INSERT查询,创buildfirstName,lastName和login。 但是,如果firstName和lastName的组合已经存在,请将login名加1。 所以表格可能看起来像这样 firstName—-|—-lastName—-|—-logins John Jones 1 Steve Smith 3 我在执行一个命令后,要么插入一个新的人(即汤姆罗杰斯),要么增加login,如果约翰琼斯是使用的名字..

对于MySQL中的循环例子

在MySQL中,我有这个存储过程中有一个For循环: DELIMITER $$ CREATE PROCEDURE ABC() BEGIN DECLARE a INT Default 0 ; simple_loop: LOOP SET a=a+1; select a; IF a=5 THEN LEAVE simple_loop; END IF; END LOOP simple_loop; END $$ 它总是打印1 。 什么是MySQL for循环的正确语法?