草庐IT

SELECT-INSERT

全部标签

mysql - 如何检查 INSERT 在存储函数中是否运行良好?

我正在创建一个应该向表中插入新行的存储函数。该表中还有一个唯一的列。我如何检查是否一切顺利,是否真的插入了行?我如何才能准确检查是否找到了这个唯一的列(例如-尝试添加重复值)? 最佳答案 您可以检查LAST_INSERT_ID()函数和INSERTIGNORE。如果INSERTIGNORE成功,您将获得返回的主键。让我们创建一个具有自动递增主键和名称唯一键的表。usetestDROPTABLEIFEXISTSnametable;CREATETABLEnametable(idintnotnullauto_increment,namev

用于在 'OPTION SQL_SELECT_LIMIT=10' 附近使用正确语法的 MySQL 服务器版本

我发布这个是为了节省另一个开发时间的浪费时间。Mysql候选版本5.6.7-rc是垃圾。作为开发人员,我通常会尽可能密切关注最新版本。这导致我调试gerrit和mysql数小时。答案是使用稳定版。我希望这对其他人有帮助。不确定执行此类操作的SO协议(protocol)-所以只是作为问题发布。mysql>selectVERSION();+--------------+|VERSION()|+--------------+|5.6.7-rc-log|+--------------+1rowinset(0.00sec)mysql>SETOPTIONSQL_SELECT_LIMIT=10;ER

mysql - 哪些 DBMS 允许对 select 子句中不存在的属性进行排序?

假设我有一个名为Cars的表,其中包含2列:CarName、BrandName现在我要执行这个查询:selectCarNamefromCarsorderbyBrandName如您所见,我想返回一个按列排序的列表,该列不存在于查询的选择部分。sql命令的基本(未优化)执行顺序是:from,where,groupby,having,select,orderby.出现的问题是,BrandName不是执行选择命令后剩下的部分。我在书籍、谷歌和Stackoverflow上搜索过这个,但到目前为止我只找到了几个SO评论,比如“我知道数据库系统不允许它,但我不记得是哪个一”。所以我的问题是:1)标准

MySQL SELECT 返回错误结果

我正在使用MySQL5.7。我创建了一个表,其中包含一个DATETIME类型的虚拟列(未存储),上面有一个索引。当我处理它时,我注意到orderby没有返回所有数据(我期望在顶部的一些数据丢失了)。MAX和MIN的结果也是错误的。跑完后ANALYZETABLECHECKTABLEOPTIMIZETABLE那么结果是正确的。我猜索引数据有问题,所以我有几个问题:何时以及为什么会发生这种情况?有什么办法可以避免这种情况吗?在我运行的3个命令中,哪个是正确使用的?我担心将来会发生这种情况,但我不会注意到。编辑:根据评论中的要求,我添加了表格定义:CREATETABLE`items`(`id`

php - 如何用 ENUM 值填充 <select>?

我想填充一个HTML使用PHP和PHP数据对象(PDO)的MySQL数据库中的ENUM字段的选项。我该怎么做? 最佳答案 普通PHP实现:$option");}}?>PHP数据对象实现query($sql)->fetch(PDO::FETCH_ASSOC);foreach(explode("','",substr($row['Type'],6,-2))as$option){print("$option");}?> 关于php-如何用ENUM值填充?,我们在StackOverflow上找到

mysql - MySQL 中的 SELECT DISTINCT 语句需要 10 分钟

我是MySQL的新手,我正在尝试使用以下语句选择一组不同的行:SELECTDISTINCTsp.atcoCode,sp.name,sp.longitude,sp.latitudeFROM`transportdata`.stoppointsasspINNERJOIN`vehicledata`.gtfsstop_timesasstONsp.atcoCode=st.fk_atco_codeINNERJOIN`vehicledata`.gtfstripsastripONst.trip_id=trip.trip_idINNERJOIN`vehicledata`.gtfsroutesasroute

mysql - 如何将一个 mysql 表中的 INSERT INTO 插入到另一个表中并设置一列的值?

我需要将表1中的数据插入到表2中。但是,我想将table2中的myYear列设置为2010。但是,table1中没有myYear列。所以,我的基本插入内容如下:INSERTINTO`table2`(place,event)SELECTplace,eventFROMtable1大致上,我想做如下事情:INSERTINTO`table2`(place,event,SETmyYear='2010')...有没有办法在插入语句中设置列值? 最佳答案 应该做到以下几点:INSERTINTO`table2`(place,event,myYear

php - mysql_insert_id() 返回 0

我知道有很多标题相同的主题。但主要是查询插入了错误的位置。但我认为我放对了。所以问题是,即使将数据插入数据库,我仍然得到0。有人知道我可能错的答案吗?这是我的代码:mysql_query('SETNAMESutf8');$this->arr_kolommen=$arr_kolommen;$this->arr_waardes=$arr_waardes;$this->tabel=$tabel;$aantal=count($this->arr_kolommen);//$sql="INSERTINTO`tbl_photo_lijst_zoekcriteria`(`PLZ_FOTO`,`PLZ_

设置了整数的特定位的 mySQL SELECT 行

我必须在设置了整数特定位的发布表中执行选择查询。整数表示位掩码中的一组类别:例如1=>health2=>marketing3=>personal4=>music5=>video6=>design7=>fashion8=>......数据示例:id|categories|title1|11|blabla2|48|blabla,too我需要一个mysql查询来选择标记有特定类别的帖子。让我们说“所有视频帖子”这意味着我需要一个帖子的结果集,其中设置了类别列的第5位(例如16、17、48....)SELECT*FROMpostingsWHERE....????有什么想法吗?

MySQL INSERT INTO 语法

这个问题在这里已经有了答案:SyntaxerrorduetousingareservedwordasatableorcolumnnameinMySQL(1个回答)关闭2年前。我有以下结构user_idint(11)rightint(11)group_idint(11)valuetinyint(1)还有3个查询INSERTINTOuser_rights(`user_id`,`right`,`group_id`,`value`)VALUES('42','160','1','1');INSERTINTOuser_rights('user_id','right','group_id','val