tp 查询逗号分割的字符串 FIND_IN_SET
时间: 2023-10-12 10:04:47 浏览: 175
如果您想在逗号分割的字符串中使用类似于MySQL中的FIND_IN_SET函数进行查询,可以使用以下方法:
```python
def find_in_set(item, string):
items = string.split(",")
if item in items:
return True
return False
string = "apple,banana,orange"
item = "banana"
result = find_in_set(item, string)
print(result)
```
输出:
```
True
```
在这个例子中,`find_in_set`函数接受一个要查找的元素和一个逗号分割的字符串作为参数。它将字符串拆分成一个列表,并检查要查找的元素是否在列表中。如果找到了,则返回`True`,否则返回`False`。
您可以根据需要调用`find_in_set`函数,并传入相应的要查找的元素和逗号分割的字符串。
希望这可以帮助到您!如果您还有其他问题,请随时提问。
相关问题
tp6 find_in_set
In ThinkPHP 6 (TP6), the `find_in_set` function is used to search for a value within a comma-separated list of values. It returns the position of the value if found, otherwise, it returns 0. Here's an example usage:
```php
use think\db\Raw;
// Assuming you have a model named "User" and a field named "skills" containing a comma-separated list of skills
$skill = 'PHP';
// Query for users with the skill 'PHP' in their skills list
$users = User::where(new Raw("FIND_IN_SET('{$skill}', skills)"))->select();
// You can also use it in the query builder
$users = Db::table('user')->where(new Raw("FIND_IN_SET('{$skill}', skills)"))->select();
// Loop through the results
foreach ($users as $user) {
// Do something with each user
}
```
Make sure to properly sanitize or bind the value if it comes from user input to prevent SQL injection attacks.
tp8 __isset() 報錯
在ThinkPHP框架中,`__isset()`是一个魔术方法,当尝试对一个对象的不可访问属性调用 `isset()` 或 `empty()` 函数时,这个方法会被自动调用。如果你遇到了 `__isset()` 报错的问题,可能有几个原因:
1. 确保你的方法名正确无误,包括大小写。`__isset()` 是由两个下划线开始的,所以很容易出错。
2. 确保你的 `__isset()` 方法返回的是布尔值,即 `true` 或 `false`。
3. 如果你是在模型或数据表中使用 `__isset()`,确保没有拼写错误,并且方法定义的属性是存在的。
例如,如果你有一个名为 `User` 的模型,你想检查模型实例中是否存在某个字段,可以这样写:
```php
class User {
public function __isset($name) {
// 检查属性是否存在
if (in_array($name, ['username', 'email'])) {
return true;
}
return false;
}
}
```
使用上述方法,当你尝试 `isset($user->username)` 或 `empty($user->email)` 时,`__isset()` 方法会被调用。
阅读全文