在MySQL中,要使查询不区分大小写,可以通过以下几种方式实现:
1. 修改列的字符集和校对规则:
将列的字符集设置为`utf8mb4`(或其他字符集,如`latin1`),并将校对规则设置为`_ci`(case insensitive,即不区分大小写)。
以下是修改表中的某个列的SQL语句示例:
```sql
ALTER TABLE blueskycrm.VisitLog MODIFY COLUMN columnName VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```
请将`columnName`替换为实际的列名。
2. 使用函数转换:
在查询时,可以使用`LOWER()`或`UPPER()`函数将列值和搜索词都转换为同一种大小写形式。
示例:
```sql
SELECT * FROM blueskycrm.VisitLog WHERE LOWER(columnName) = LOWER('searchValue');
```
请将`columnName`替换为实际的列名,`searchValue`替换为你想要搜索的值。
3. 使用二进制不区分大小写的校对规则:
如果使用的是`utf8mb4`字符集,可以使用`utf8mb4_bin`校对规则,它对字符进行二进制比较,但不区分大小写。
示例:
```sql
ALTER TABLE blueskycrm.VisitLog MODIFY COLUMN columnName VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
```
请注意,虽然`utf8mb4_bin`校对规则不区分大小写,但它区分字符的二元表示,可能会导致一些意外的排序结果。
关于你提供的错误信息,"Table 'blueskycrm.VisitLog' doesn't exist" 表示数据库中不存在名为 `VisitLog` 的表。这个问题与大小写无关,而是表不存在。确保表名正确,并且已经创建了该表。如果表名可能存在大小写差异,确保在创建表和查询时使用完全相同的表名(包括大小写),因为MySQL的表名在某些系统上可能是区分大小写的。