You can use REGEXP_REPLACE() to remove any "separating character" from the stored part number and from the input given by the number. Then you compare these two values with a WHERE condition in your SELECT statement. See the following example (using MySQL, but should work the same in MariaDB):
SELECT
id,
partNumber,
REGEXP_REPLACE(partNumber, '[^a-z\\d]', '') AS filtered
FROM
Product;
+----+-------------+-----------+
| id | partNumber | filtered |
+----+-------------+-----------+
| 1 | 2234A-22-43 | 2234A2243 |
| 2 | 2234A.22.43 | 2234A2243 |
| 3 | 2234A 22 43 | 2234A2243 |
| 4 | 2234A-22-99 | 2234A2299 |
| 5 | 2234A.22.99 | 2234A2299 |
| 6 | 2234A 22 99 | 2234A2299 |
+----+-------------+-----------+
The regex means that everything that is not a character or digit will be removed. Here you see the "filtered" values do not have any separated character like "space", . or - anymore. When you apply this function to the user input as well, you will get something to compare your "filtered" values against. The query might look like this:
SELECT
id,
partNumber
FROM
Product
WHERE
REGEXP_REPLACE(partNumber, '[^a-z\\d]', '') = REGEXP_REPLACE('2234A 22-43', '[^a-z\\d]', '');
+----+-------------+
| id | partNumber |
+----+-------------+
| 1 | 2234A-22-43 |
| 2 | 2234A.22.43 |
| 3 | 2234A 22 43 |
+----+-------------+
The second REGEXP_REPLACE() function call will contain the user input and filters it. Alternatively, you can do the filtering "outside" of your database in the programming language you are using and do WHERE REGEXP_REPLACE(partNumber, '[^a-z\\d]', '') = '2234A2243' directly.
Obviously, no index will be used to search for the matching rows since the compare value is calculated on-the-fly inside the WHERE part (but you could generate and save it inside a new column filteredPartNumber and compare against that column).
LIKE, or you could normalize what you store and use the same normalization to transform search inputs, e.g., by removing all non-digits.