草庐IT

mb_substr

全部标签

mysql - 如何使 GROUP BY SUBSTRING 查询更快?

我有一个具有以下结构的表:idbigNumbertext11200321030011010233"anitemwithsometext"21200321030011014563"anotheritemwithsomemoretext"33120323434432211133"more...."...该表包含大约50,000条记录。我想执行以下查询,但速度很慢:SELECTCOUNT(*),bigNumberFROMitemsGROUPBYsubstr(bigNumber,1,X)其中X在2和19之间变化。创建19列,每列中包含部分数字以便能够使用索引会更快吗?

php - fatal error : Uncaught Error: Call to undefined function mb_detect_encoding()

我在尝试访问http://localhost/phpmyadmin/时收到以下错误:Fatalerror:UncaughtError:Calltoundefinedfunctionmb_detect_encoding()inC:\Apache24\htdocs\phpmyadmin\libraries\php-gettext\gettext.inc:177Stacktrace:#0C:\Apache24\htdocs\phpmyadmin\libraries\php-gettext\gettext.inc(282):_encode('The%sextensio...')#1C:\Apa

MySQL utf8mb4 外键错误

几天前,我们将数据库从utf8迁移到utf8mb4。由于迁移,我们的大多数主键都从VARCHAR(255)更新为VARCHAR(191),因为每个字符都有额外的字节数。问题是现在我们不能在引用现有表的新表上添加新的外键。我们在MySQLWorkbench中收到以下错误:"Referencedtablehasnocandidatecolumnswithacompatibletypefortable.id.Hint:sourcecolumnhastypeVARCHAR(191),PKofreferencedtableisVARCHAR(191)."如果我们尝试通过控制台添加外键,我们会得到

mysql - 存储过程 collat​​ion_connection 是 utf8mb4_general_ci 而不是 utf8mb4_unicode_ci 使用 Hiedisql mysql

我正在使用HiedisqlV9.2。我设置了默认服务器character-setisutfmb4和collationisutf8mb4_unicode_ci但在创建存储过程后仍然显示collation_connection=utf8mb4_general_ci.以下是服务器my.ini设置。[client]default-character-set=utf8mb4[mysql]default-character-set=utf8mb4[mysqld]init_connect='SETNAMESutf8mb4'collation-server=utf8mb4_unicode_cichar

mysql utf8mb4_unicode_ci 导致唯一键冲突

我有一张这样的tableCREATETABLE`mb1`(`id`int(11)NOTNULLAUTO_INCREMENT,`name`varchar(30)CHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ciNOTNULL,PRIMARYKEY(`id`),UNIQUEKEY`u_name`(`name`))ENGINE=InnoDBDEFAULTCHARSET=utf8;然后我插入两行insertintomb1(name)values('K'),('K');注意,第二个K是unicode字符+------+-----------+|name|he

mysql - MySQL 中 SUBSTRING() 的更快替代方案?

我有一个使用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

mysql - 当 str 包含 'é' 或 'ë' 且 substr 仅包含 'e' 时,INSTR(str,substr) 不起作用

在另一篇关于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

mysql - 计数 substring_index

我需要知道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乘以定

mysql - MYSQL 中字段的 Substring()

我不明白为什么这没有成功:selectid,name,concat(substring(description,0,30),'...')asdesc_shortened,created_date,added_byfromproducts即使description字段中有数据。我没有在mySQL文档中看到任何字段示例。他们使用纯字符串而不是列名。concat(susbtring(description,0,30))只返回...就这样。 最佳答案 改用substring(description,1,30)。

java - 带有 JPA : Illegal mix of collations (utf8mb4_general_ci, IMPLICIT 的 MySQL 和 (utf8_general_ci,COERCIBLE)

我需要能够在我的数据库中存储像\xF0\x9F\x94\xA5这样的字符,根据thispost需要UTF8mb4编码。所以我设置了我的数据库CREATEDATABASE`myDB`CHARACTERSETutf8mb4COLLATEutf8mb4_general_ci并在MySQLshell中验证是否有效:SHOWFULLCOLUMNSFROMmyTable;+---------+------------------+--------------------+----|Field|Type|Collation|...+---------+------------------+-----