如何在 phpMyAdmin 中使用 VARBINARY 列上的 LIKE 子句 运行 MySQL 查询?

How to run a MySQL query in phpMyAdmin with LIKE clause on a VARBINARY column?

我正在尝试查询 MySQL table,它应该使用 PHPmyAdmin 在 VARBINARY 列上过滤结果,但是 SELECT * FROM 'cg_mclean_refs' WHERE mediaUrl LIKE("%Hello%") 之类的查询将 return 0 个结果.

我也尝试找到一个代码示例 here ,但是这会抛出错误,看起来 PHPmyAdmin 中不支持 preparedstatemnts。

String query="SELECT * from T WHERE col LIKE ?";
PreparedStatement st = connection.prepareStatement(query); // Assuming I already have connection object
byte[] prefixBytes = somePrefixBytesIWouldLikeToSearchFor;
String likeString = new String(bytes) + "%";
st.setString(1, likeString);
st.executeQuery();

那么,有没有办法在查询中使用 LIKE 语句将文本转换为 VARBINARY?

当列为 VARBINARY 时,比较期间将使用二进制排序规则。查询将找到 'Hello, John' 但不会找到 'hello, Jim'。但您可以明确指定所需的排序规则。

DEMO

I get this error

Error Static analysis: 2 errors were found during analysis.

Unrecognized keyword. (near "COLLATE" at position 64)

Unexpected token. (near "utf8mb4_0900_ai_ci" at position 72)

SQL query: Copy Documentation SELECT * FROM cg_mclean_refs` WHERE mediaUrl LIKE '%Hello%' COLLATE utf8mb4_0900_ai_ci

MySQL said: Documentation #1273 - Unknown collation: 'utf8mb4_0900_ai_ci'

检查您当前的字符集和可用的排序规则。相应地编辑显式排序规则。