草庐IT

SELECT-INSERT

全部标签

mysql - SELECT INTO 多个@variables MySQL

我希望将SELECT语句的结果存储到多个变量中。我知道这个查询的结果总是从6个不同的行返回6个整数。我试过使用下面的代码:SELECTidINTO@photo1,@photo2,@photo3,@photo4,@photo5,@photo6FROMalbumWHEREuploaded=@timeANDscene_id=NEW.id;album是一个表格。uploaded是album中的一个字段。scene_id是album中的一个字段。id是相册的PRIMARY_KEY。我读到变量的数量必须等于字段的数量。上面的陈述显然不是这种情况。考虑到这一点,我将如何克服这个问题?此代码在MySQ

mysql select 查询优化以及 limit 在 mysql 中的工作原理

我正在使用mysql数据库,它只有一个表"data"和17,151257行。这个表有一列字符串。我想打印字符串列包含特定查询字符串(存储在“entered_query”变量中)的所有行,所以我使用了以下内容:SELECTDISTINCT*fromdataWHEREstringLIKE'%".$entered_query."%'限制10很明显,上面的查询执行起来花费了太多时间。我读到可以使用索引,但在这种情况下如何使用?我还考虑过将整个数据分成10个不同的行,然后使用perlDBI执行10个并行查询。现在我有以下问题:如何减少执行时间?我听说mysql查询中的“LIKE”避免了索引,那么

mysql - 使用Mysql对链接表进行多次INSERT

我有两个表,一个链接到另一个的主键。目前我INSERT到A表,得到LAST_INSERT_ID,然后INSERT到B表。但我有数百条记录要插入,我想加快速度。在Mysql中你可以:INSERTINTOtable_a(v1,v2,c3)VALUE(0,1,2);INSERTINTOtable_a(v1,v2,v3)VALUE(4,5,6);等等,或者INSERTINTOtable_a(v1,v2,v3)VALUE(0,1,2),(4,5,6),etc以更快地添加多个条目-但仅限于一个表。当然后者要快得多。我想知道是否可以使用存储过程通过两个链接表为我的示例复制此行为,以及它是否会在性能上

mysql - SELECT * 特定年龄的用户

在users表中,我有一个名为dob的字段,它以这种格式存储用户的出生日期:1959-04-02无论如何,我想选择所有18岁和19岁的用户。这是我的查询:SELECT*FROM`users`WHEREdobBETWEEN'1993-10-30'AND'1994-10-30'但它似乎只选择了大部分18岁的人和一些(但不是全部)19岁的人。我在数据库中有一堆测试用户,18岁和19岁的人数相等。然而,这个查询产生了大约90%的18岁和大约10%的19岁。为什么? 最佳答案 18到19岁之间的人包括一系列出生日期超过2年的人。您的查询仅涵盖

mysql - 如何在 MySQL 中使用 SELECT 删除填充的 NULL 字节

如果这样插入数据,insertinto`t`(`date`,`data`)values(now(),lpad('Hello',4096,CHAR(0x00)));你如何检索它从data列中删除NULL字符。事实上,我正在寻找与LPAD功能相反的功能。表定义是,createtable`t`(`id`intauto_increment,`date`datetime,`data`blob,primarykey(`id`));普遍的问题是,如何从字符串的开头或结尾删除特定字符? 最佳答案 使用trim(),有3种口味:selecttrim(

过程中的 MySQL 错误 #1351 - View 的 SELECT 包含变量或参数

PhpMyAdmin不接受过程中的参数“id_jugador_IN”。这是我们正在执行的程序:SETGLOBALevent_scheduler=1;usetraviandatabase;DELIMITER$$DROPPROCEDUREIFEXISTSsp_monitoritzacio_jugador$$CREATEPROCEDUREsp_monitoritzacio_jugador(INid_jugador_ININT(10))BEGINCREATEORREPLACEVIEWdades_ususariASSELECTj.nomASjugador,j.sexeASsexe,j.edatA

mysql - 在 MySQL 中使用表名 SELECT "AS"

当我在PHP中评估我的MySQLSELECTJOIN结果时,我使用表名来构建嵌套数组。但是,当使用AS计算列时,我似乎无法按预期设置表名(为简化起见,在此示例中我尝试不使用JOIN,但问题是相同的):SELECT`field1`,`field2`,"Test"AS`Table`.`field3`FROM`Test`;这会引发错误。如何在SQL中指示我要将field3与哪个表相关联?(导致$pdoStatement->getColumnMeta()中的表名称为“Table”) 最佳答案 要将字符串文字声明为输出列,请关闭Table并仅

php - 避免在 INSERT 查询中重复唯一键

我有一个MySQL查询,如下所示:INSERTINTObeer(name,type,alcohol_by_volume,description,image_url)VALUES('{$name}',{$type},'{$alcohol_by_volume}','{$description}','{$image_url}')唯一的问题是name是一个唯一值,这意味着如果我遇到重复项,我会得到这样的错误:Errorstoringbeerdata:Duplicateentry'HocusPocus'forkey2有没有一种方法可以确保SQL查询不会在不对整个数据库运行SELECT查询的情况下

php - mysql_insert_id 使用安全吗?

根据PHP文档,mysql_insert_id从mysql表中获取最后插入的id。我的问题是,如果我有一个每秒向数据库插入超过2行的网站,我可以使用mysql_insert_id并获得我在中引用的正确IDINSERT查询前一行? 最佳答案 来自MySQL手册:TheIDthatwasgeneratedismaintainedintheserveronaper-connectionbasis.ThismeansthatthevaluereturnedbythefunctiontoagivenclientisthefirstAUTO_I

php - MySQL根据SELECT查询结果插入多行

我有一个像这样的MySQL查询:SELECTcp.plan_name,cp.plan_timeFROMcoursescINNERJOINcourse_to_plancplONcpl.course_id=c.course_idINNERJOINcourseplanscpONcp.plan_id=cpl.plan_idWHEREcpl.course_id='$course_id';这将输出数据,例如:+----------------------------+-----------+|plan_name|plan_time|+----------------------------+---