0

我正在尝试使用 mysql 虚拟列功能来实现搜索机制,其中我的预订号码可能是像 101 这样的实整数或像 A101、B101 等的字母数字。

所以我确实需要建立一个搜索机制,用户将输入 101,我将获取所有带有 101 的预订,这肯定是一个预订,但我也会获取所有带有 A101 、 B101 等字符的预订,希望你明白这一点。

我使用带有 json 的虚拟列,它们非常有效,如下所示。

            DB::statement('ALTER TABLE finances ADD meta_type BIGINT AS (JSON_UNQUOTE(meta->"$.type"))');

在这里提取 json 值并将其分配给我的新虚拟列

现在我需要做同样的步骤,但有另一个逻辑

  DB::statement('ALTER TABLE bookings ADD number_vc  BIGINT AS ( convert number column which is alpha numeric to integer only  )');

我想摆脱数字列值中的所有字符,将其全部剥离,只留下整数分配给我的 number_vc 新列,所以当我的迁移成功执行时,我将得到以下结果

ID 数字 number_vc(新的虚拟列)
1 101 101
2 A101 101
3 B101 101

所以我错过了 As (在我的声明中转换)所以任何帮助将不胜感激!

4

0 回答 0