我可以选择@字符之前的文本字符串:数据库中的示例条目:email@domain.com,示例输出:email与:SELECTSUBSTRING_INDEX(email,'@',1)但是在@字符之后选择文本字符串的命令是什么?谢谢 最佳答案 像这样为count使用负值:SELECTSUBSTRING_INDEX(email,'@',-1)请参阅此处的文档:http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_substring-index
我正在使用MySQL。我的数据库中有一个car表,该表中有一个name列。假设表的name列包含值:+----------+|name|+----------+|AAABB|----------|CCDBB|----------|OOkkBB|----------|PPBCC|----------我想搜索name列值包含单词“BB”(不是子字符串)的表,SQL命令是什么要做到这一点?我知道LIKE,但它用于匹配包含的子字符串,而不是单词匹配。附言我的表包含大量数据。所以,我可能需要一种比使用LIKE更有效的方法name列中的值是随机字符串。请不要要求我使用IN(...),因为该列中的值
我遇到了以下问题。想象一下我的mySQL表如下所示:idrange1210-4002300-3103100-350我要找范围字段中第一部分(“-”之前)的最小值范围字段中第二部分(“-”之后)的最大值现在我尝试使用SUBSTRING选择该字段的所需部分,然后像这样获取MIN或MAX值:SELECTSUBSTRING_INDEX(`range`,'-',1)as`left_value`,SUBSTRING_INDEX(`range`,'-',-1)as`right_value`,MIN(`left_value`),MAX(`right_value`)FROM`table`但我只是得到“#
我刚刚看到MID()和SUBSTRING()函数返回相同的结果。我想知道两者之间有什么区别?不同别名的功能用法是否相同?SELECTMID('mysample',2,3);SELECTSUBSTRING('mysample',2,3);返回:ysa 最佳答案 作为MySQLdocumentation说:MID(str,pos,len)isasynonymforSUBSTRING(str,pos,len).文档还说MID()SUBSTRING()需要3个参数更灵活。len参数是可选的。当它不存在时,该函数返回以pos开头直到字符串结尾
我有一个具有以下结构的表:idbigNumbertext11200321030011010233"anitemwithsometext"21200321030011014563"anotheritemwithsomemoretext"33120323434432211133"more...."...该表包含大约50,000条记录。我想执行以下查询,但速度很慢:SELECTCOUNT(*),bigNumberFROMitemsGROUPBYsubstr(bigNumber,1,X)其中X在2和19之间变化。创建19列,每列中包含部分数字以便能够使用索引会更快吗?
我有一个使用SUBSTRING()作为条件的查询:SELECTp.namep_name,pa.line1p_line1,pa.zipp_zip,c.namec_name,ca.line1c_line1,ca.zipc_zipFROMbankbJOINimport_bundleibONib.bank_id=b.idJOINgeneric_importgiONgi.import_bundle_id=ib.idJOINaccount_importaiONai.generic_import_id=gi.idJOINaccountaONa.account_import_id=ai.idJOINa
在另一篇关于stackoverflow的帖子中,我读到INSTR可用于按相关性对结果进行排序。我对colLIKE'%str%'和INSTR(col,'str')`的理解是它们的行为相同。排序规则的处理方式似乎有所不同。CREATETABLE`users`(`id`int(11)NOTNULLAUTO_INCREMENT,`name`varchar(64)COLLATEutf8_unicode_ciDEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8COLLATE=utf8_unicode_ci;INSERTINTOu
我需要知道substring_index如何只返回与分隔符数量完全匹配的所有行。在这种情况下.例如这个查询:SELECTSUBSTRING_INDEX(ABC,'.',4)FROMxxx只有当行完全像这样(有4个单词)时才应该输出:aaa.bbb.ccc.ddd问题是:这一行也显示了。aaa.bbb 最佳答案 这将返回ABC有3个.分隔符的任何内容。select*fromxxxwherechar_length(replace(ABC,'.',''))+3=char_length(ABC)如果您的定界符是多字符字符串,则需要将3乘以定
我不明白为什么这没有成功:selectid,name,concat(substring(description,0,30),'...')asdesc_shortened,created_date,added_byfromproducts即使description字段中有数据。我没有在mySQL文档中看到任何字段示例。他们使用纯字符串而不是列名。concat(susbtring(description,0,30))只返回...就这样。 最佳答案 改用substring(description,1,30)。
假设我有这些数据:FirstlineoftextetcetcSecondlineoftexthere我想返回第一行,我知道它是如何开始的,但不知道它是如何结束的,只是它以换行符结束。这是我目前所拥有的:p>SELECTSUBSTRING(`file`,LOCATE('Firstline',`file`),LOCATE('Firstline',`file`)+10)FROM`test`除了+10不会总是+10外,这行得通。我必须知道在何处停止的唯一标记是换行,但我认为不可能在SUBSTRING中使用正则表达式。有办法做到这一点吗? 最佳答案