I think you need to use `IN` clause to find the matching from multi-select picklist. `IN` clause always take `Iterable` element. So, either store `strPA` as List or Set and use that in SOQL. String strPA = [SELECT Budget_Cross_Practice__c FROM User WHERE Id = :UserInfo.getUserId() LIMIT 1][0].Budget_Cross_Practice__c; List<String> strList = strPA.split(';'); List<Practice__c> pas = [SELECT Id, Name FROM Practice__c WHERE Name IN:strList];