MySQL 删除字符串中特定字符之后的部分

标签 mysql sql database sql-update

我确实有一个名为“MAPPINGS”的数据库,其中有大约 23.000 行,由于错误,我需要替换。是否有任何查询可以实现以下目的:.

UPDATE MAPPINGS SET MAIN = 'firt part' WHERE USERID = '1578' AND MAIN LIKE 'first part >%'

问题是“第一部分”每次都是别的东西。我只需要删除“>”之后的所有内容,映射就正确了。

或者只能通过 PHP 脚本来完成? while select * from mappings where userid = '1578' 然后更新查询。我希望会有一个查询来实现这一点。

最佳答案

您可以使用 substring_index() 在 MySQL 中执行此操作:

UPDATE MAPPINGS
    SET MAIN = SUBSTRING_INDEX(MAIN, '>', 1)
    WHERE MAIN LIKE '%>%' AND USERID = '1578';

关于MySQL 删除字符串中特定字符之后的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33629952/

相关文章:

mysql - 使用 SUM 计算多个表中的数据

python - 寻找一个 Python 库来模拟数据库

javascript - axios react 获取实时数据展示

php - 使用 phpMyAdmin for xcode 从 MySQL 获取数据

php - 如何修复 App\Http\Controllers\FilesController::uploadAttachments() 缺少参数 3

java - 将 JMenuItem 传递给 Controller ​​类

mysql - 如何使这个 MySql 查询适应 PervasiveSql?

python - mysql数据库优先级顺序

php - MYSQL LEFT(column, 100) 和 PHP {$row[(column)]}

mysql - JPQL JOIN查询对应值的行数(针对多列)