草庐IT

INSERT-SELECT

全部标签

php - mysql_insert_id() 的行为

我正在使用来自使用mysql_insert_id()的php库中的函数时不时地。现在我修改了一些将数据插入表中的函数,以便显式指定主键值,例如当表最初有10行时,我插入一行ID=300,然后插入一行ID=200。我想知道mysql_insert_id是否会按预期运行,即返回我为AUTO_INCREMENTPRIMARYKEY列明确指定的值。 最佳答案 表:CREATETABLE`foo`(`id`int(11)NOTNULLauto_increment,`value`varchar(32)NOTNULL,PRIMARYKEY(`id

php - 将 SQL 查询的 SELECT 子句解析为 PHP 数组

这更多是为了在将查询发送到服务器之前用PHP分析查询。我这样做的原因非常复杂,所以我不想深入探讨这样做的原因。在PHP中,我需要将字段选择存储到PHP数组中。以这个查询为例:SELECTuser_id,username,DATE(join_datetime)asjoin_date,(SELECTCOUNT(1)FROMfoobarWHEREfoonumIN(5,4,6)anduser_id=users.user_id)asmyfoo_countFROMusersWHEREuser_id=123在这种情况下,我需要将user_id,username,DATE(join_datetime)

java - 将 SELECT COUNT(*) 查询结果分配给 Java 变量

我一直在将SELECTCOUNT(*)查询的结果分配给Java变量时遇到问题。我正在将查询结果分配给ResultSet。然后,我试图检索计数值并将其分配给一个变量。尝试执行此操作时出现错误。这是我的代码:ResultSetrc1=null;introwCount1;Statementstat=conn.createStatement();rc1=stat.executeQuery("SELECTCOUNT(*)ASrowcount1FROMSignalWHERESignalId=1;");if(rc1.next())rowCount1=rc1.getInt("rowcount1");然

java - 从java中的mysql select语句中检索数据

遇到这个问题..我确定我遗漏了一些简单的东西,但我只是想要javamysqlselect语句中的select语句的结果,但我不断得到:com.mysql.jdbc.JDBC4ResultSet@1c190c99这是我的代码:PreparedStatementFindstatement;Findstatement=con.prepareStatement("SELECTCodefromDataMasterwhereDataName=(?)");Findstatement.setString(1,Name);//Ihaveavariableinmyfilenamed'Name'Result

具有变异容忍度的 MySQL SELECT DISTINCT

在我的数据库中,我有很多非常相似但不完全相同的条目。例如,只有两个字符可能不同,例如:Row1:“天气不错,看http://xyz56.com”Row2:“天气不错,看http://xyz31.com”我想去掉这些部分重复项,只收到这两行的一个结果。不管是哪一个,我建议使用出现的第一个。我可以利用MySQL的任何功能来高效地完成这项工作吗?我的第一个想法是提取更多数据并对字符串进行比较,如果匹配字符超过某个阈值而不是忽略它。缺点是我永远不知道我必须从数据库中提取多少条目,而且它的效率也很低,因为我必须将每一行与所有其他行进行比较(O(n²))。更新:更具体地说明用例:变化的位置并不总是

php - SQL 查询将多个值匹配到 select 语句中的一个字段

我想选择列A的不同值,其中列B=集合S的任何成员。有没有办法直接在SQL中执行此操作而无需循环然后在代码中过滤?谢谢编辑:集合S是一个PHP数组。这有什么不同吗? 最佳答案 将IN子句与值列表或子查询一起使用(不确定MySql是否支持,因为我使用的是Oracle)。匹配项可以在多个列上。SELECTcolumn_aFROMmytableWHEREcolumn_bIN(1,2,3)SELECTcolumn_aFROMmytableWHEREcolumn_bIN(SELECTcolumn_cFROMmyothertable)

mysql - 何时使用不同的 never-rejected ("insert or update") MySQL 语句?

应用程序中的一个标准问题是,如果记录不存在则插入,如果存在则更新。在PRIMARYKEY未知的情况下,这通常通过发出SELECT然后运行​​INSERT或UPDATE如果找到记录。但是,据我所知,似乎至少有三种方法可以将记录插入数据库,即使记录已经存在。就个人而言,如果新的插入请求已经存在,我宁愿删除它,但是在某些情况下,您可能宁愿删除数据库中的记录并使用新的记录。CREATETABLEIFNOTEXISTS`table`(`id`int(10)unsignedNOTNULLAUTO_INCREMENT,`foo`int(10)unsignedNOTNULL,`bar`int(10)u

mysql - 相当于 "SELECT * FROM (SELECT table_name FROM...)"的东西?

此查询会运行,但它会生成一个表的名称作为结果,而不是实际从该表中进行选择。SELECTT.*FROM(SELECTtablenameFROMListOfTablesWHEREid=0)AST其中ListOfTables包含id=0,tablename='some_table',我想返回与我直接编写的相同的结果集:SELECT*FROMsome_table在MySQL5中是否有本地方法来执行此操作,还是我必须在应用程序中执行此操作? 最佳答案 要在MySQL中执行此操作,您需要创建一个preparedstatement您只能从user

mysql - 带有子查询 : Column count doesn't match value count at row 1 的 INSERT 查询

我有这个插入行的查询,使用像这样的子查询:INSERTINTOLecture_presence_Student(`presence_id`,`Lecture_id`,`Student_id`,`status`)VALUES((SELECT''aspresence_id,Lecture.Lecture_id,CourseEdition_students_Student.Student_id,'onverwerkt'FROMCourseEdition_students_StudentINNERJOINLectureONCourseEdition_students_Student.Cours

mysql - 我可以使用多个字段作为 MySQL 中的 IGNORE 限定符来执行 INSERT IGNORE 吗?

我有一个MySQL表,如下所示:`id`int(10)unsignedNOTNULLAUTO_INCREMENT,`company_id`int(8)unsignedNOTNULL,`term_type`varchar(255)NOTNULLDEFAULT'',`term`varchar(255)NOTNULLDEFAULT'',我希望能够做到这一点......INSERTIGNOREINTOtable(company_id,term_type,term)VALUES(a_company_id,'a_term_type','a_term')...但我希望在company_id、term