草庐IT

mysql - 仅当特定列的值不存在时才获取行值

我的数据库students中有两个表:GRADE_REPORT:+----------------+-------------+------+|StudentNo|SectionId|Grade|+----------------+-------------+------+|11|85|B||17|112|B||17|119|C||17|135|A||8|85)|A||8|92|A|+----------------+-------------+------+学生:+----------------+-------------+------+--------+-------------

mysql - 随机化查询中每行两列的顺序

我想将行从一个MySQL表复制到另一个MySQL表,同时随机化两个字段的顺序,即我想获取字段为id的行,a,b来自table1并将它们插入table2,但交换a和b在随机行上。这是我尝试过的:INSERTINTOtable2(id,a,b)SELECTid,IF(@r=RAND()我原以为这会为每一行生成一个随机数,但实际上它只是为每个查询生成一个随机数,所以它要么是a,b用于所有行,要么是b,a用于所有行。我需要更改什么?P.S:我使用变量是因为调用rand()在两个IF中都会生成两个单独的数字,我可以获得相同的字段两次。有没有办法在没有变量的情况下做到这一点?

mysql - 为什么 ActiveRecord 生成的 SQL 包含时间列的日期?

当我创建一个SQL时间列时,我得到一个纯时间,即。未注明日期的。但是当我使用RubyTime类时,我也会得到一个日期。问题是什么时候“查找”生成的SQL包含日期,我似乎得到了奇怪的结果。表格start_date:timeend_time:timeday_of_week:stringActiveRecorddefself.now_playingself.find(:first,:conditions=>['day_of_week=?ANDend_time>?ANDstart_timeSQLSELECT*FROM`schedules`WHERE(day_of_week='Saturday'

mysql - 在 MySQL 中,UNIQUE 索引会作为 varchar 列的快速查找吗?

如果我在MySQL表中有一列short_title并且它被定义为UNIQUE,我是否还必须添加FULLTEXT才能真正快速地搜索它?还是UNIQUE已经保证它可以快速搜索(无需全表扫描)?谢谢,博达赛多 最佳答案 UNIQUE将使用基础索引逐字定位short_title。如果您需要单词匹配(而不是逐字匹配),请使用FULLTEXT索引。另请注意,默认情况下,MyISAM中针对VARCHAR列的B-Tree索引会进行键压缩。这会减慢搜索接近字母表末尾的标题的速度:Indexsearchtimedependsonthevaluebein

mysql - 我怎样才能在 MySql 中获取标识列的种子值

要在sqlserver中获取标识列的种子值和步长值,我可以使用此语法SELECTColumnName=name,Seed=seed_value,Step=increment_valueFROMsys.identity_columns到目前为止,在MySql中我发现如果我使用这种语法SELECT*FROMINFORMATION_SCHEMA.TABLESWHEREauto_incrementISNOTNULL我至少可以找出哪些列是标识...问题是如何从MySQL架构中获取标识列的SEED和STEP值。 最佳答案 您可以使用以下方式获取

使用默认值(表达式)到列的 MYSQL 表创建

我有一个表Employee(id,name,dept_name)。我希望id为字母数字[dddddaaaaa],前5位数字将自动递增id和其余4个字符将是员工姓名的前4个字符。例如,对于第一个员工姓名=JohnTodd,Id的自动递增部分将为00001。因此,Id将为00001JOHN。是否可以为列Id=(concat(autoincrement,substring(name,4))设置默认表达式。我也在考虑是否可以在插入Employee之后创建一个触发器,并且该触发器将更新Employee.Id。但是MySql不允许从触发触发器的触发器更新同一个表。请帮助。

mysql - 如何在基于行和基于列的表结构之间做出决定?

我有一些数据集,其中有数百个参数(还有更多参数)如果我将它们转储到一个表中,它最终可能会有数百列(此时我什至不确定有多少)我可以使用一堆元表来做基于行的操作,但不知何故基于行的结构感觉不直观另一种方法是保持基于列,但有多个表(逻辑上拆分表),这似乎是一个很好的解决方案。还有其他方法吗?如果是的话,你能指点我一些教程吗?(我用的是mysql)编辑:根据答案,我应该澄清一件事-更新和删除将比插入和选择少得多。事实上,选择将成为大部分操作,因此选择必须很快。 最佳答案 我遇到了几个可能出现#4的设计:将您的列拆分为可搜索列和辅助列定义一个

MySQL 在一列的最后 5 个字符内搜索?

我的用户表有一个“名称”列,其中包含如下信息:JoeLeeAngelaWhite我想高效地搜索名字或姓氏。名字很简单,我会做SELECT*FROMuserWHEREnameLIKE"ABC%"但对于姓氏,如果我这样做SELECT*FROMuserWHEREnameLIKE"%ABC"那会非常慢。所以我在考虑统计输入的字符数,例如“ABC”有3个字符,如果我能只搜索name列的最后三个字符,那就太好了。所以我想要类似的东西SELECT*FROMuserWHEREsubstring(name,end-3,end)LIKE"ABC%"MySQL中有什么可以做到这一点吗?非常感谢!附言。我不能

php - 如何合并来自 2 个数据库列的文本并将结果插入另一列?

我正在尝试编写一个代码,我可以将数据库中第1列的第一个字母与第2列的文本结合起来,并将结果插入另一列基本上这就是我想要发生的事情来自first_namelast_nameusernameLoremIpsum进入first_namelast_nameusernameLoremIpsumlipsum处理这个问题的最佳方法是什么?提前致谢 最佳答案 UPDATEtableNameSETusername=CONCAT(SUBSTRING(LOWER(first_name),1,1),LOWER(last_name))SQLFiddleDem

mysql - 为什么在 MySQL 中每个列只在一个索引中并且查询中列的顺序很重要?

我经常在表posts中搜索user+status和user+时间。SELECT*FROM`posts`WHERE`user`='xxx'and`status`='active'SELECT*FROM`posts`WHERE`user`='xxx'and`time`>...因此我设置了两个索引(user,status)和(user,time)我知道,需要更新的索引越多,写入过程就越慢。但我认为在这种情况下,同时拥有两个索引很有用,因为读取操作的数量远远超过写入操作。无论如何,PHPMyAdmin都会给出一个警告,指出“已为列用户创建了多个索引”。我可以忽略这个警告吗?我检查了Wordpr