Tag: MySQL

MySQL中的ROW_NUMBER()

MySQL中有一个很好的方法来复制SQL Server函数ROW_NUMBER()吗? 例如: SELECT col1, col2, ROW_NUMBER() OVER (PARTITION BY col1, col2 ORDER BY col3 DESC) AS intRow FROM Table1 然后,我可以,例如,添加一个条件来限制intRow为1,以获得每个(col1, col2)对具有最高col3的单个行。

检查行是否存在与MySQL

我需要帮助检查行是否存在。 我得到“电子邮件不再存在publisher@example.com”。 有没有更好的方法来检查行是否存在与mysqli? if (count($_POST)) { $email = $dbl->real_escape_string(trim(strip_tags($_POST['email']))); $passwd = $dbl->real_escape_string(trim(strip_tags($_POST['passwd']))); $query = "SELECT `email` FROM `tblUser` WHERE `email` = '$email'"; $result = mysqli_query($dbl,$query); if(is_resource($result) && mysqli_num_rows($result) == 1 ){ $row = mysqli_fetch_assoc($result); echo $email . " email exists " . $row["email"] . "\n"; } else{ echo "email no longer exists" . $email . […]

如何在MySQL中进行正则expression式replace?

我有一个约500k行的桌子; varchar(255)UTF8列的filename包含一个文件名; 我试图从文件名中去除各种奇怪的字符 – 以为我会用字符类: [^a-zA-Z0-9()_ .\-] 现在, MySQL中有一个函数可以让你通过正则expression式来replace吗? 我正在寻找与REPLACE()函数类似的function – 简单的例子如下: SELECT REPLACE('stackowerflow', 'ower', 'over'); Output: "stackoverflow" /* does something like this exist? */ SELECT X_REG_REPLACE('Stackoverflow','/[A-Zf]/','-'); Output: "-tackover-low" 我知道REGEXP / RLIKE ,但那些只检查是否有匹配,不匹配什么 。 (我可以从一个PHP脚本做一个“ SELECT pkey_id,filename FROM foo WHERE filename RLIKE '[^a-zA-Z0-9()_ .\-]' ”,做一个preg_replace然后“ UPDATE foo … WHERE pkey_id=… “,但看起来像是最后一UPDATE foo … WHERE pkey_id=…缓慢和丑陋的黑客)

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链接失败

我正在努力让我的数据库与我的Java程序交谈。 有人可以给我一个快速和脏的示例程序使用JDBC? 我得到一个相当惊人的错误: Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at com.mysql.jdbc.Util.handleNewInstance(Util.java:409) at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1122) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2260) at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:787) at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:49) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) […]

INNER JOIN ON与WHERE子句

为了简单起见,假定所有相关的字段都不是NULL。 你可以做: SELECT table1.this, table2.that, table2.somethingelse FROM table1, table2 WHERE table1.foreignkey = table2.primarykey AND (some other conditions) 要不然: SELECT table1.this, table2.that, table2.somethingelse FROM table1 INNER JOIN table2 ON table1.foreignkey = table2.primarykey WHERE (some other conditions) 这两个工作在MySQL的相同方式吗?

mysqli或PDO – 有什么优点和缺点?

就我们而言,我们将使用mysqli和PDO来分割准备好的语句和事务支持。 有些项目使用一个,另一个使用另一个。 我们转向另一个RDBMS几乎没有现实的可能性。 我更喜欢PDO,因为它允许准备好的语句的命名参数,并且据我所知,mysqli没有。 在我们巩固我们的项目使用一种方法时,是否有任何其他的利弊select作为一个标准?

mysql扩展名被弃用,将来会被删除:使用mysqli或者PDO来代替

当我尝试从PHP连接到MySQL服务器时,我看到以下错误: 不推荐使用:不推荐使用mysql扩展,将来会被删除:在123行的/path/to/filename.php中使用mysqli或PDO 被引用的行上的代码是: mysql_connect($server, $username, $password); 我确信论据是正确的,而这个确切的代码已经工作了好几年没有问题。 事实上,我从PHP的源代码教程中获得了它。 为什么发生这种情况? 我该如何解决? 我明白,可以通过在php.ini设置error_reporting来排除E_DEPRECATED从而抑制弃用错误: error_reporting = E_ALL ^ E_DEPRECATED 如果我这样做会发生什么?

在GROUP BY中使用LIMIT来获得每个组的N个结果?

以下查询: SELECT year, id, rate FROM h WHERE year BETWEEN 2000 AND 2009 AND id IN (SELECT rid FROM table2) GROUP BY id, year ORDER BY id, rate DESC 收益率: year id rate 2006 p01 8 2003 p01 7.4 2008 p01 6.8 2001 p01 5.9 2007 p01 5.3 2009 p01 4.4 2002 p01 3.9 2004 […]

如何在MySQL中做一个完整的外部连接?

我想在MySQL中做一个完全的外连接。 这可能吗? MySQL是否支持完全外部联接?

MySQL将行数转换为dynamic数量的列

比方说,我有三个不同的MySQL表: 表products : id | name 1 Product A 2 Product B 表partners : id | name 1 Partner A 2 Partner B 表sales : partners_id | products_id 1 2 2 5 1 5 1 3 1 4 1 5 2 2 2 4 2 3 1 1 我想获得与合作伙伴在行和产品作为列的表。 到目前为止,我能够得到这样的输出: name | name | COUNT( […]